{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "e4cd52e6",
   "metadata": {},
   "source": [
    "# PEGG tutorial\n",
    "This jupyter notebook provides a tutorial for using PEGG, as well as 3 case studies that demonstrate PEGG's functionality.\n",
    "\n",
    "To download reference files, visit: [Reference Files](https://www.dropbox.com/sh/h6fdvpv3tyny27q/AADYVOkJe12XZiD4pf3_WXuga?dl=0)\n",
    "\n",
    "For other documentation see: [pegg.readthedocs.io](https://pegg.readthedocs.io/en/latest/)\n",
    "\n",
    "Author: Samuel Gould\n",
    "\n",
    "Email: samgould@mit.edu\n",
    "\n",
    "**Index**\n",
    "1. [Case Study 1: Optimization of pegRNA design](#Case-Study-1:-Optimization-of-pegRNA-design)\n",
    "2. [Case Study 2: Rapid Library Design](#Case-Study-2:-Rapid-Library-Design)\n",
    "3. [Case Study 3: Modeling ClinVar Variants](#Case-Study-3:-Modeling-ClinVar-Variants)\n",
    "4. [Extra Case Study: High throughput ClinVar example](#Extra-Case-Study:-High-throughput-ClinVar-example)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "766936ae",
   "metadata": {},
   "source": [
    "# Case Study 1: Optimization of pegRNA design\n",
    "\n",
    "**Motivation**: How can we rapidly design and test various types of pegRNAs to engineer and study a small number of mutations?\n",
    "\n",
    "\n",
    "For this case study, we will walk through how to design a large number of different pegRNA permutations for a small number of mutations. The goal here is to generate many possible pegRNA designs for testing and optimization purposes. We will select a mutation from the MSK IMPACT 2017 mutation dataset and generate pegRNA designs, visualize some of these designs, and then generate oligos for cloning purposes. \n",
    "\n",
    "The MSK IMPACT 2017 dataset is available in the Dropbox folder of reference files here: [Reference Files](https://www.dropbox.com/sh/h6fdvpv3tyny27q/AADYVOkJe12XZiD4pf3_WXuga?dl=0). \n",
    "\n",
    "Alternatively, it can be downloaded from the cBioPortal here: [cBioPortal](http://www.cbioportal.org/datasets)\n",
    "\n",
    "## Step 1: Loading in the PEGG module & reference files\n",
    "The first step is loaded in the required reference files: \n",
    "1. A file containing mutation data\n",
    "2. A reference genome, using the genome_loader() function\n",
    "3. chrom_dict, which contains information about on/off target information\n",
    "    - If you don't want/need this on/off target information, simply set chrom_dict='none'\n",
    "    \n",
    "For precise information about the format of reference files, see the [Quickstart guide](https://pegg.readthedocs.io/en/latest/quickstart.html).\n",
    "\n",
    "**In the below codeblock, you will need to fill in the appropriate filepaths that correspond with the appropriate reference files.**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "bf9a0174",
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import pegg"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "b6eb0883",
   "metadata": {},
   "outputs": [],
   "source": [
    "#loading in required input files (requires a decent amount of RAM >= 9 Gb on machine)\n",
    "\n",
    "#------loading in impact data set 2017---------------------\n",
    "filepath = '/Users/samgould/Desktop/MSK_IMPACT_2017.txt'\n",
    "mutant_input = pd.read_csv(filepath, sep='\\t', header=1) \n",
    "\n",
    "\n",
    "#------loading in reference genome and organizing it into a 2-d list by chromosome---------------------\n",
    "filepath_37 = '/Users/samgould/Desktop/FSR Lab/reference files/GRCh37/ncbi-genomes-2022-03-17/GCF_000001405.25_GRCh37.p13_genomic.fna.gz'\n",
    "records, index_list = pegg.genome_loader(filepath_37)\n",
    "\n",
    "#------generates minus strand sequences of chromosomes to speed up run time----------\n",
    "minus_seqs = pegg.minus_seq_generator(records, index_list)\n",
    "\n",
    "          \n",
    "#---------loading in on/off-target efficiencies of sgRNAs in exonic regions (doesn't include others...)---------------------\n",
    "file = '/Users/samgould/Desktop/FSR Lab/reference files/chrom_dict.pickle'\n",
    "chrom_dict = pd.read_pickle(file)\n",
    "#alternatively, set chrom_dict = 'none'\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f9279f83",
   "metadata": {},
   "source": [
    "## Step 2: Selecting the mutation from the dataset and generating pegRNAs\n",
    "Now let's pick a particular mutation in the dataset for which we want to create pegRNA designs. First we can look at the dataset:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "cc430a1b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Hugo_Symbol</th>\n",
       "      <th>Entrez_Gene_Id</th>\n",
       "      <th>Center</th>\n",
       "      <th>NCBI_Build</th>\n",
       "      <th>Chromosome</th>\n",
       "      <th>Start_Position</th>\n",
       "      <th>End_Position</th>\n",
       "      <th>Strand</th>\n",
       "      <th>Consequence</th>\n",
       "      <th>Variant_Classification</th>\n",
       "      <th>Variant_Type</th>\n",
       "      <th>Reference_Allele</th>\n",
       "      <th>Tumor_Seq_Allele1</th>\n",
       "      <th>Tumor_Seq_Allele2</th>\n",
       "      <th>dbSNP_RS</th>\n",
       "      <th>dbSNP_Val_Status</th>\n",
       "      <th>Tumor_Sample_Barcode</th>\n",
       "      <th>Matched_Norm_Sample_Barcode</th>\n",
       "      <th>Match_Norm_Seq_Allele1</th>\n",
       "      <th>Match_Norm_Seq_Allele2</th>\n",
       "      <th>Tumor_Validation_Allele1</th>\n",
       "      <th>Tumor_Validation_Allele2</th>\n",
       "      <th>Match_Norm_Validation_Allele1</th>\n",
       "      <th>Match_Norm_Validation_Allele2</th>\n",
       "      <th>Verification_Status</th>\n",
       "      <th>Validation_Status</th>\n",
       "      <th>Mutation_Status</th>\n",
       "      <th>Sequencing_Phase</th>\n",
       "      <th>Sequence_Source</th>\n",
       "      <th>Validation_Method</th>\n",
       "      <th>Score</th>\n",
       "      <th>BAM_File</th>\n",
       "      <th>Sequencer</th>\n",
       "      <th>t_ref_count</th>\n",
       "      <th>t_alt_count</th>\n",
       "      <th>n_ref_count</th>\n",
       "      <th>n_alt_count</th>\n",
       "      <th>HGVSc</th>\n",
       "      <th>HGVSp</th>\n",
       "      <th>HGVSp_Short</th>\n",
       "      <th>Transcript_ID</th>\n",
       "      <th>RefSeq</th>\n",
       "      <th>Protein_position</th>\n",
       "      <th>Codons</th>\n",
       "      <th>Hotspot</th>\n",
       "      <th>cDNA_change</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>SPEN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>GRCh37</td>\n",
       "      <td>1</td>\n",
       "      <td>16265908</td>\n",
       "      <td>16265908</td>\n",
       "      <td>+</td>\n",
       "      <td>missense_variant</td>\n",
       "      <td>Missense_Mutation</td>\n",
       "      <td>SNP</td>\n",
       "      <td>A</td>\n",
       "      <td>A</td>\n",
       "      <td>T</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>P-0000004-T01-IM3</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>400</td>\n",
       "      <td>73</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>ENST00000375759.3:c.10981A&gt;T</td>\n",
       "      <td>p.Ile3661Phe</td>\n",
       "      <td>p.I3661F</td>\n",
       "      <td>ENST00000375759</td>\n",
       "      <td>NM_015001.2</td>\n",
       "      <td>3661.0</td>\n",
       "      <td>Att/Ttt</td>\n",
       "      <td>0</td>\n",
       "      <td>c.10981A&gt;T</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>ALK</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>GRCh37</td>\n",
       "      <td>2</td>\n",
       "      <td>29543736</td>\n",
       "      <td>29543736</td>\n",
       "      <td>+</td>\n",
       "      <td>missense_variant</td>\n",
       "      <td>Missense_Mutation</td>\n",
       "      <td>SNP</td>\n",
       "      <td>A</td>\n",
       "      <td>A</td>\n",
       "      <td>G</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>P-0000004-T01-IM3</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>180</td>\n",
       "      <td>13</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>ENST00000389048.3:c.1427T&gt;C</td>\n",
       "      <td>p.Val476Ala</td>\n",
       "      <td>p.V476A</td>\n",
       "      <td>ENST00000389048</td>\n",
       "      <td>NM_004304.4</td>\n",
       "      <td>476.0</td>\n",
       "      <td>gTg/gCg</td>\n",
       "      <td>0</td>\n",
       "      <td>c.1427T&gt;C</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>PDCD1</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>GRCh37</td>\n",
       "      <td>2</td>\n",
       "      <td>242793433</td>\n",
       "      <td>242793433</td>\n",
       "      <td>+</td>\n",
       "      <td>missense_variant</td>\n",
       "      <td>Missense_Mutation</td>\n",
       "      <td>SNP</td>\n",
       "      <td>G</td>\n",
       "      <td>G</td>\n",
       "      <td>A</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>P-0000004-T01-IM3</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>225</td>\n",
       "      <td>15</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>ENST00000334409.5:c.644C&gt;T</td>\n",
       "      <td>p.Ala215Val</td>\n",
       "      <td>p.A215V</td>\n",
       "      <td>ENST00000334409</td>\n",
       "      <td>NM_005018.2</td>\n",
       "      <td>215.0</td>\n",
       "      <td>gCc/gTc</td>\n",
       "      <td>0</td>\n",
       "      <td>c.644C&gt;T</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>MAP3K1</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>GRCh37</td>\n",
       "      <td>5</td>\n",
       "      <td>56177843</td>\n",
       "      <td>56177843</td>\n",
       "      <td>+</td>\n",
       "      <td>missense_variant</td>\n",
       "      <td>Missense_Mutation</td>\n",
       "      <td>SNP</td>\n",
       "      <td>C</td>\n",
       "      <td>C</td>\n",
       "      <td>G</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>P-0000004-T01-IM3</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>370</td>\n",
       "      <td>12</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>ENST00000399503.3:c.2816C&gt;G</td>\n",
       "      <td>p.Ser939Cys</td>\n",
       "      <td>p.S939C</td>\n",
       "      <td>ENST00000399503</td>\n",
       "      <td>NM_005921.1</td>\n",
       "      <td>939.0</td>\n",
       "      <td>tCt/tGt</td>\n",
       "      <td>0</td>\n",
       "      <td>c.2816C&gt;G</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>FLT4</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>GRCh37</td>\n",
       "      <td>5</td>\n",
       "      <td>180030313</td>\n",
       "      <td>180030313</td>\n",
       "      <td>+</td>\n",
       "      <td>missense_variant</td>\n",
       "      <td>Missense_Mutation</td>\n",
       "      <td>SNP</td>\n",
       "      <td>C</td>\n",
       "      <td>C</td>\n",
       "      <td>A</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>P-0000004-T01-IM3</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>360</td>\n",
       "      <td>25</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>ENST00000261937.6:c.3971G&gt;T</td>\n",
       "      <td>p.Arg1324Leu</td>\n",
       "      <td>p.R1324L</td>\n",
       "      <td>ENST00000261937</td>\n",
       "      <td>NM_182925.4</td>\n",
       "      <td>1324.0</td>\n",
       "      <td>cGg/cTg</td>\n",
       "      <td>0</td>\n",
       "      <td>c.3971G&gt;T</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>78258</th>\n",
       "      <td>BCL2</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>GRCh37</td>\n",
       "      <td>18</td>\n",
       "      <td>60985808</td>\n",
       "      <td>60985808</td>\n",
       "      <td>+</td>\n",
       "      <td>missense_variant</td>\n",
       "      <td>Missense_Mutation</td>\n",
       "      <td>SNP</td>\n",
       "      <td>T</td>\n",
       "      <td>T</td>\n",
       "      <td>C</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>P-0012524-T01-IM5</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>595</td>\n",
       "      <td>233</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>ENST00000333681.4:c.92A&gt;G</td>\n",
       "      <td>p.Asp31Gly</td>\n",
       "      <td>p.D31G</td>\n",
       "      <td>ENST00000333681</td>\n",
       "      <td>NaN</td>\n",
       "      <td>31.0</td>\n",
       "      <td>gAt/gGt</td>\n",
       "      <td>0</td>\n",
       "      <td>c.92A&gt;G</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>78259</th>\n",
       "      <td>TNFRSF14</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>GRCh37</td>\n",
       "      <td>1</td>\n",
       "      <td>2489268</td>\n",
       "      <td>2489269</td>\n",
       "      <td>+</td>\n",
       "      <td>frameshift_variant</td>\n",
       "      <td>Frame_Shift_Ins</td>\n",
       "      <td>INS</td>\n",
       "      <td>-</td>\n",
       "      <td>-</td>\n",
       "      <td>TCCA</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>P-0012524-T01-IM5</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>447</td>\n",
       "      <td>267</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>ENST00000355716.4:c.174_177dup</td>\n",
       "      <td>p.Gly60SerfsTer18</td>\n",
       "      <td>p.G60Sfs*18</td>\n",
       "      <td>ENST00000355716</td>\n",
       "      <td>NM_003820.2</td>\n",
       "      <td>58.0</td>\n",
       "      <td>agt/agTCCAt</td>\n",
       "      <td>0</td>\n",
       "      <td>c.174_177dupTCCA</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>78260</th>\n",
       "      <td>TNFAIP3</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>GRCh37</td>\n",
       "      <td>6</td>\n",
       "      <td>138196871</td>\n",
       "      <td>138196872</td>\n",
       "      <td>+</td>\n",
       "      <td>frameshift_variant</td>\n",
       "      <td>Frame_Shift_Del</td>\n",
       "      <td>DEL</td>\n",
       "      <td>AC</td>\n",
       "      <td>AC</td>\n",
       "      <td>-</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>P-0012524-T01-IM5</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>868</td>\n",
       "      <td>204</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>ENST00000237289.4:c.537_538del</td>\n",
       "      <td>p.Pro180HisfsTer73</td>\n",
       "      <td>p.P180Hfs*73</td>\n",
       "      <td>ENST00000237289</td>\n",
       "      <td>NM_001270507.1</td>\n",
       "      <td>178.0</td>\n",
       "      <td>gAC/g</td>\n",
       "      <td>0</td>\n",
       "      <td>c.537_538delAC</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>78261</th>\n",
       "      <td>MLL2</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>GRCh37</td>\n",
       "      <td>12</td>\n",
       "      <td>49440414</td>\n",
       "      <td>49440415</td>\n",
       "      <td>+</td>\n",
       "      <td>frameshift_variant</td>\n",
       "      <td>Frame_Shift_Ins</td>\n",
       "      <td>INS</td>\n",
       "      <td>-</td>\n",
       "      <td>-</td>\n",
       "      <td>G</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>P-0012524-T01-IM5</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>596</td>\n",
       "      <td>245</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>ENST00000301067.7:c.4395dupC</td>\n",
       "      <td>p.Lys1466GlnfsTer25</td>\n",
       "      <td>p.K1466Qfs*25</td>\n",
       "      <td>ENST00000301067</td>\n",
       "      <td>NM_003482.3</td>\n",
       "      <td>1465.0</td>\n",
       "      <td>-/C</td>\n",
       "      <td>0</td>\n",
       "      <td>c.4395dupC</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>78262</th>\n",
       "      <td>CDKN2A</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>GRCh37</td>\n",
       "      <td>9</td>\n",
       "      <td>21971170</td>\n",
       "      <td>21971170</td>\n",
       "      <td>+</td>\n",
       "      <td>missense_variant</td>\n",
       "      <td>Missense_Mutation</td>\n",
       "      <td>SNP</td>\n",
       "      <td>A</td>\n",
       "      <td>A</td>\n",
       "      <td>T</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>P-0005919-T01-IM5</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>153</td>\n",
       "      <td>59</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>ENST00000304494.5:c.188T&gt;A</td>\n",
       "      <td>p.Leu63Gln</td>\n",
       "      <td>p.L63Q</td>\n",
       "      <td>ENST00000304494</td>\n",
       "      <td>NM_000077.4</td>\n",
       "      <td>63.0</td>\n",
       "      <td>cTg/cAg</td>\n",
       "      <td>0</td>\n",
       "      <td>c.188T&gt;A</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>78263 rows × 46 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "      Hugo_Symbol  Entrez_Gene_Id  Center NCBI_Build Chromosome  \\\n",
       "0            SPEN             NaN     NaN     GRCh37          1   \n",
       "1             ALK             NaN     NaN     GRCh37          2   \n",
       "2           PDCD1             NaN     NaN     GRCh37          2   \n",
       "3          MAP3K1             NaN     NaN     GRCh37          5   \n",
       "4            FLT4             NaN     NaN     GRCh37          5   \n",
       "...           ...             ...     ...        ...        ...   \n",
       "78258        BCL2             NaN     NaN     GRCh37         18   \n",
       "78259    TNFRSF14             NaN     NaN     GRCh37          1   \n",
       "78260     TNFAIP3             NaN     NaN     GRCh37          6   \n",
       "78261        MLL2             NaN     NaN     GRCh37         12   \n",
       "78262      CDKN2A             NaN     NaN     GRCh37          9   \n",
       "\n",
       "       Start_Position  End_Position Strand         Consequence  \\\n",
       "0            16265908      16265908      +    missense_variant   \n",
       "1            29543736      29543736      +    missense_variant   \n",
       "2           242793433     242793433      +    missense_variant   \n",
       "3            56177843      56177843      +    missense_variant   \n",
       "4           180030313     180030313      +    missense_variant   \n",
       "...               ...           ...    ...                 ...   \n",
       "78258        60985808      60985808      +    missense_variant   \n",
       "78259         2489268       2489269      +  frameshift_variant   \n",
       "78260       138196871     138196872      +  frameshift_variant   \n",
       "78261        49440414      49440415      +  frameshift_variant   \n",
       "78262        21971170      21971170      +    missense_variant   \n",
       "\n",
       "      Variant_Classification Variant_Type Reference_Allele Tumor_Seq_Allele1  \\\n",
       "0          Missense_Mutation          SNP                A                 A   \n",
       "1          Missense_Mutation          SNP                A                 A   \n",
       "2          Missense_Mutation          SNP                G                 G   \n",
       "3          Missense_Mutation          SNP                C                 C   \n",
       "4          Missense_Mutation          SNP                C                 C   \n",
       "...                      ...          ...              ...               ...   \n",
       "78258      Missense_Mutation          SNP                T                 T   \n",
       "78259        Frame_Shift_Ins          INS                -                 -   \n",
       "78260        Frame_Shift_Del          DEL               AC                AC   \n",
       "78261        Frame_Shift_Ins          INS                -                 -   \n",
       "78262      Missense_Mutation          SNP                A                 A   \n",
       "\n",
       "      Tumor_Seq_Allele2  dbSNP_RS  dbSNP_Val_Status Tumor_Sample_Barcode  \\\n",
       "0                     T       NaN               NaN    P-0000004-T01-IM3   \n",
       "1                     G       NaN               NaN    P-0000004-T01-IM3   \n",
       "2                     A       NaN               NaN    P-0000004-T01-IM3   \n",
       "3                     G       NaN               NaN    P-0000004-T01-IM3   \n",
       "4                     A       NaN               NaN    P-0000004-T01-IM3   \n",
       "...                 ...       ...               ...                  ...   \n",
       "78258                 C       NaN               NaN    P-0012524-T01-IM5   \n",
       "78259              TCCA       NaN               NaN    P-0012524-T01-IM5   \n",
       "78260                 -       NaN               NaN    P-0012524-T01-IM5   \n",
       "78261                 G       NaN               NaN    P-0012524-T01-IM5   \n",
       "78262                 T       NaN               NaN    P-0005919-T01-IM5   \n",
       "\n",
       "       Matched_Norm_Sample_Barcode  Match_Norm_Seq_Allele1  \\\n",
       "0                              NaN                     NaN   \n",
       "1                              NaN                     NaN   \n",
       "2                              NaN                     NaN   \n",
       "3                              NaN                     NaN   \n",
       "4                              NaN                     NaN   \n",
       "...                            ...                     ...   \n",
       "78258                          NaN                     NaN   \n",
       "78259                          NaN                     NaN   \n",
       "78260                          NaN                     NaN   \n",
       "78261                          NaN                     NaN   \n",
       "78262                          NaN                     NaN   \n",
       "\n",
       "       Match_Norm_Seq_Allele2  Tumor_Validation_Allele1  \\\n",
       "0                         NaN                       NaN   \n",
       "1                         NaN                       NaN   \n",
       "2                         NaN                       NaN   \n",
       "3                         NaN                       NaN   \n",
       "4                         NaN                       NaN   \n",
       "...                       ...                       ...   \n",
       "78258                     NaN                       NaN   \n",
       "78259                     NaN                       NaN   \n",
       "78260                     NaN                       NaN   \n",
       "78261                     NaN                       NaN   \n",
       "78262                     NaN                       NaN   \n",
       "\n",
       "       Tumor_Validation_Allele2  Match_Norm_Validation_Allele1  \\\n",
       "0                           NaN                            NaN   \n",
       "1                           NaN                            NaN   \n",
       "2                           NaN                            NaN   \n",
       "3                           NaN                            NaN   \n",
       "4                           NaN                            NaN   \n",
       "...                         ...                            ...   \n",
       "78258                       NaN                            NaN   \n",
       "78259                       NaN                            NaN   \n",
       "78260                       NaN                            NaN   \n",
       "78261                       NaN                            NaN   \n",
       "78262                       NaN                            NaN   \n",
       "\n",
       "       Match_Norm_Validation_Allele2  Verification_Status  Validation_Status  \\\n",
       "0                                NaN                  NaN                NaN   \n",
       "1                                NaN                  NaN                NaN   \n",
       "2                                NaN                  NaN                NaN   \n",
       "3                                NaN                  NaN                NaN   \n",
       "4                                NaN                  NaN                NaN   \n",
       "...                              ...                  ...                ...   \n",
       "78258                            NaN                  NaN                NaN   \n",
       "78259                            NaN                  NaN                NaN   \n",
       "78260                            NaN                  NaN                NaN   \n",
       "78261                            NaN                  NaN                NaN   \n",
       "78262                            NaN                  NaN                NaN   \n",
       "\n",
       "       Mutation_Status  Sequencing_Phase  Sequence_Source  Validation_Method  \\\n",
       "0                  NaN               NaN              NaN                NaN   \n",
       "1                  NaN               NaN              NaN                NaN   \n",
       "2                  NaN               NaN              NaN                NaN   \n",
       "3                  NaN               NaN              NaN                NaN   \n",
       "4                  NaN               NaN              NaN                NaN   \n",
       "...                ...               ...              ...                ...   \n",
       "78258              NaN               NaN              NaN                NaN   \n",
       "78259              NaN               NaN              NaN                NaN   \n",
       "78260              NaN               NaN              NaN                NaN   \n",
       "78261              NaN               NaN              NaN                NaN   \n",
       "78262              NaN               NaN              NaN                NaN   \n",
       "\n",
       "       Score  BAM_File  Sequencer  t_ref_count  t_alt_count  n_ref_count  \\\n",
       "0        NaN       NaN        NaN          400           73          NaN   \n",
       "1        NaN       NaN        NaN          180           13          NaN   \n",
       "2        NaN       NaN        NaN          225           15          NaN   \n",
       "3        NaN       NaN        NaN          370           12          NaN   \n",
       "4        NaN       NaN        NaN          360           25          NaN   \n",
       "...      ...       ...        ...          ...          ...          ...   \n",
       "78258    NaN       NaN        NaN          595          233          NaN   \n",
       "78259    NaN       NaN        NaN          447          267          NaN   \n",
       "78260    NaN       NaN        NaN          868          204          NaN   \n",
       "78261    NaN       NaN        NaN          596          245          NaN   \n",
       "78262    NaN       NaN        NaN          153           59          NaN   \n",
       "\n",
       "       n_alt_count                           HGVSc                HGVSp  \\\n",
       "0              NaN    ENST00000375759.3:c.10981A>T         p.Ile3661Phe   \n",
       "1              NaN     ENST00000389048.3:c.1427T>C          p.Val476Ala   \n",
       "2              NaN      ENST00000334409.5:c.644C>T          p.Ala215Val   \n",
       "3              NaN     ENST00000399503.3:c.2816C>G          p.Ser939Cys   \n",
       "4              NaN     ENST00000261937.6:c.3971G>T         p.Arg1324Leu   \n",
       "...            ...                             ...                  ...   \n",
       "78258          NaN       ENST00000333681.4:c.92A>G           p.Asp31Gly   \n",
       "78259          NaN  ENST00000355716.4:c.174_177dup    p.Gly60SerfsTer18   \n",
       "78260          NaN  ENST00000237289.4:c.537_538del   p.Pro180HisfsTer73   \n",
       "78261          NaN    ENST00000301067.7:c.4395dupC  p.Lys1466GlnfsTer25   \n",
       "78262          NaN      ENST00000304494.5:c.188T>A           p.Leu63Gln   \n",
       "\n",
       "         HGVSp_Short    Transcript_ID          RefSeq  Protein_position  \\\n",
       "0           p.I3661F  ENST00000375759     NM_015001.2            3661.0   \n",
       "1            p.V476A  ENST00000389048     NM_004304.4             476.0   \n",
       "2            p.A215V  ENST00000334409     NM_005018.2             215.0   \n",
       "3            p.S939C  ENST00000399503     NM_005921.1             939.0   \n",
       "4           p.R1324L  ENST00000261937     NM_182925.4            1324.0   \n",
       "...              ...              ...             ...               ...   \n",
       "78258         p.D31G  ENST00000333681             NaN              31.0   \n",
       "78259    p.G60Sfs*18  ENST00000355716     NM_003820.2              58.0   \n",
       "78260   p.P180Hfs*73  ENST00000237289  NM_001270507.1             178.0   \n",
       "78261  p.K1466Qfs*25  ENST00000301067     NM_003482.3            1465.0   \n",
       "78262         p.L63Q  ENST00000304494     NM_000077.4              63.0   \n",
       "\n",
       "            Codons  Hotspot       cDNA_change  \n",
       "0          Att/Ttt        0        c.10981A>T  \n",
       "1          gTg/gCg        0         c.1427T>C  \n",
       "2          gCc/gTc        0          c.644C>T  \n",
       "3          tCt/tGt        0         c.2816C>G  \n",
       "4          cGg/cTg        0         c.3971G>T  \n",
       "...            ...      ...               ...  \n",
       "78258      gAt/gGt        0           c.92A>G  \n",
       "78259  agt/agTCCAt        0  c.174_177dupTCCA  \n",
       "78260        gAC/g        0    c.537_538delAC  \n",
       "78261          -/C        0        c.4395dupC  \n",
       "78262      cTg/cAg        0          c.188T>A  \n",
       "\n",
       "[78263 rows x 46 columns]"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "mutant_input"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "356eea04",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Hugo_Symbol</th>\n",
       "      <th>Entrez_Gene_Id</th>\n",
       "      <th>Center</th>\n",
       "      <th>NCBI_Build</th>\n",
       "      <th>Chromosome</th>\n",
       "      <th>Start_Position</th>\n",
       "      <th>End_Position</th>\n",
       "      <th>Strand</th>\n",
       "      <th>Consequence</th>\n",
       "      <th>Variant_Classification</th>\n",
       "      <th>Variant_Type</th>\n",
       "      <th>Reference_Allele</th>\n",
       "      <th>Tumor_Seq_Allele1</th>\n",
       "      <th>Tumor_Seq_Allele2</th>\n",
       "      <th>dbSNP_RS</th>\n",
       "      <th>dbSNP_Val_Status</th>\n",
       "      <th>Tumor_Sample_Barcode</th>\n",
       "      <th>Matched_Norm_Sample_Barcode</th>\n",
       "      <th>Match_Norm_Seq_Allele1</th>\n",
       "      <th>Match_Norm_Seq_Allele2</th>\n",
       "      <th>Tumor_Validation_Allele1</th>\n",
       "      <th>Tumor_Validation_Allele2</th>\n",
       "      <th>Match_Norm_Validation_Allele1</th>\n",
       "      <th>Match_Norm_Validation_Allele2</th>\n",
       "      <th>Verification_Status</th>\n",
       "      <th>Validation_Status</th>\n",
       "      <th>Mutation_Status</th>\n",
       "      <th>Sequencing_Phase</th>\n",
       "      <th>Sequence_Source</th>\n",
       "      <th>Validation_Method</th>\n",
       "      <th>Score</th>\n",
       "      <th>BAM_File</th>\n",
       "      <th>Sequencer</th>\n",
       "      <th>t_ref_count</th>\n",
       "      <th>t_alt_count</th>\n",
       "      <th>n_ref_count</th>\n",
       "      <th>n_alt_count</th>\n",
       "      <th>HGVSc</th>\n",
       "      <th>HGVSp</th>\n",
       "      <th>HGVSp_Short</th>\n",
       "      <th>Transcript_ID</th>\n",
       "      <th>RefSeq</th>\n",
       "      <th>Protein_position</th>\n",
       "      <th>Codons</th>\n",
       "      <th>Hotspot</th>\n",
       "      <th>cDNA_change</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>TP53</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>GRCh37</td>\n",
       "      <td>17</td>\n",
       "      <td>7578503</td>\n",
       "      <td>7578518</td>\n",
       "      <td>+</td>\n",
       "      <td>frameshift_variant</td>\n",
       "      <td>Frame_Shift_Del</td>\n",
       "      <td>DEL</td>\n",
       "      <td>CAGGGCAGGTCTTGGC</td>\n",
       "      <td>CAGGGCAGGTCTTGGC</td>\n",
       "      <td>-</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>P-0000004-T01-IM3</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>209</td>\n",
       "      <td>58</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>ENST00000269305.4:c.412_427delGCCAAGACCTGCCCTG</td>\n",
       "      <td>p.Ala138CysfsTer27</td>\n",
       "      <td>p.A138Cfs*27</td>\n",
       "      <td>ENST00000269305</td>\n",
       "      <td>NM_001126112.2</td>\n",
       "      <td>138.0</td>\n",
       "      <td>GCCAAGACCTGCCCTGtg/tg</td>\n",
       "      <td>0</td>\n",
       "      <td>c.412_427delGCCAAGACCTGCCCTG</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>26</th>\n",
       "      <td>BAP1</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>GRCh37</td>\n",
       "      <td>3</td>\n",
       "      <td>52439259</td>\n",
       "      <td>52439259</td>\n",
       "      <td>+</td>\n",
       "      <td>frameshift_variant</td>\n",
       "      <td>Frame_Shift_Del</td>\n",
       "      <td>DEL</td>\n",
       "      <td>G</td>\n",
       "      <td>G</td>\n",
       "      <td>-</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>P-0000023-T01-IM3</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>179</td>\n",
       "      <td>60</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>ENST00000460680.1:c.983delC</td>\n",
       "      <td>p.Pro328LeufsTer7</td>\n",
       "      <td>p.P328Lfs*7</td>\n",
       "      <td>ENST00000460680</td>\n",
       "      <td>NM_004656.3</td>\n",
       "      <td>328.0</td>\n",
       "      <td>cCt/ct</td>\n",
       "      <td>0</td>\n",
       "      <td>c.983delC</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>31</th>\n",
       "      <td>ARID1A</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>GRCh37</td>\n",
       "      <td>1</td>\n",
       "      <td>27105878</td>\n",
       "      <td>27105881</td>\n",
       "      <td>+</td>\n",
       "      <td>frameshift_variant</td>\n",
       "      <td>Frame_Shift_Del</td>\n",
       "      <td>DEL</td>\n",
       "      <td>AGCT</td>\n",
       "      <td>AGCT</td>\n",
       "      <td>-</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>P-0000024-T01-IM3</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>527</td>\n",
       "      <td>234</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>ENST00000324856.7:c.5489_5492delAGCT</td>\n",
       "      <td>p.Lys1830MetfsTer52</td>\n",
       "      <td>p.K1830Mfs*52</td>\n",
       "      <td>ENST00000324856</td>\n",
       "      <td>NM_006015.4</td>\n",
       "      <td>1830.0</td>\n",
       "      <td>aAGCTt/at</td>\n",
       "      <td>0</td>\n",
       "      <td>c.5489_5492delAGCT</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>32</th>\n",
       "      <td>PIK3R1</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>GRCh37</td>\n",
       "      <td>5</td>\n",
       "      <td>67591238</td>\n",
       "      <td>67591248</td>\n",
       "      <td>+</td>\n",
       "      <td>splice_acceptor_variant,coding_sequence_varian...</td>\n",
       "      <td>Splice_Site</td>\n",
       "      <td>DEL</td>\n",
       "      <td>TGTTTTTCAGG</td>\n",
       "      <td>TGTTTTTCAGG</td>\n",
       "      <td>-</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>P-0000024-T01-IM3</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>762</td>\n",
       "      <td>445</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>ENST00000274335.5:c.1746-8_1748delTTTTTCAGGTG</td>\n",
       "      <td>NaN</td>\n",
       "      <td>p.X582_splice</td>\n",
       "      <td>ENST00000274335</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>c.1746_1746delTGTTTTTCAGG</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>57</th>\n",
       "      <td>KDM6A</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>GRCh37</td>\n",
       "      <td>X</td>\n",
       "      <td>44969425</td>\n",
       "      <td>44969425</td>\n",
       "      <td>+</td>\n",
       "      <td>frameshift_variant</td>\n",
       "      <td>Frame_Shift_Del</td>\n",
       "      <td>DEL</td>\n",
       "      <td>G</td>\n",
       "      <td>G</td>\n",
       "      <td>-</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>P-0000034-T01-IM3</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>239</td>\n",
       "      <td>284</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>ENST00000377967.4:c.4108delG</td>\n",
       "      <td>p.Glu1370LysfsTer6</td>\n",
       "      <td>p.E1370Kfs*6</td>\n",
       "      <td>ENST00000377967</td>\n",
       "      <td>NM_021140.2</td>\n",
       "      <td>1369.0</td>\n",
       "      <td>ttG/tt</td>\n",
       "      <td>0</td>\n",
       "      <td>c.4107delG</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>78230</th>\n",
       "      <td>ARID2</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>GRCh37</td>\n",
       "      <td>12</td>\n",
       "      <td>46244107</td>\n",
       "      <td>46244107</td>\n",
       "      <td>+</td>\n",
       "      <td>frameshift_variant</td>\n",
       "      <td>Frame_Shift_Del</td>\n",
       "      <td>DEL</td>\n",
       "      <td>T</td>\n",
       "      <td>T</td>\n",
       "      <td>-</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>P-0012201-T01-IM5</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>301</td>\n",
       "      <td>173</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>ENST00000334344.6:c.2202del</td>\n",
       "      <td>p.Gly735GlufsTer23</td>\n",
       "      <td>p.G735Efs*23</td>\n",
       "      <td>ENST00000334344</td>\n",
       "      <td>NM_152641.2</td>\n",
       "      <td>734.0</td>\n",
       "      <td>gTt/gt</td>\n",
       "      <td>0</td>\n",
       "      <td>c.2202delT</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>78233</th>\n",
       "      <td>ATM</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>GRCh37</td>\n",
       "      <td>11</td>\n",
       "      <td>108127013</td>\n",
       "      <td>108127014</td>\n",
       "      <td>+</td>\n",
       "      <td>frameshift_variant</td>\n",
       "      <td>Frame_Shift_Del</td>\n",
       "      <td>DEL</td>\n",
       "      <td>GG</td>\n",
       "      <td>GG</td>\n",
       "      <td>-</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>P-0012193-T01-IM5</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>675</td>\n",
       "      <td>55</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>ENST00000278616.4:c.2197_2198del</td>\n",
       "      <td>p.Gly733CysfsTer4</td>\n",
       "      <td>p.G733Cfs*4</td>\n",
       "      <td>ENST00000278616</td>\n",
       "      <td>NM_000051.3</td>\n",
       "      <td>732.0</td>\n",
       "      <td>atGGgt/atgt</td>\n",
       "      <td>0</td>\n",
       "      <td>c.2197_2198delGG</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>78241</th>\n",
       "      <td>TNFRSF14</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>GRCh37</td>\n",
       "      <td>1</td>\n",
       "      <td>2493168</td>\n",
       "      <td>2493172</td>\n",
       "      <td>+</td>\n",
       "      <td>frameshift_variant</td>\n",
       "      <td>Frame_Shift_Del</td>\n",
       "      <td>DEL</td>\n",
       "      <td>GGTGG</td>\n",
       "      <td>GGTGG</td>\n",
       "      <td>-</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>P-0012245-T01-IM5</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>286</td>\n",
       "      <td>717</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>ENST00000355716.4:c.608_612del</td>\n",
       "      <td>p.Trp203PhefsTer29</td>\n",
       "      <td>p.W203Ffs*29</td>\n",
       "      <td>ENST00000355716</td>\n",
       "      <td>NM_003820.2</td>\n",
       "      <td>203.0</td>\n",
       "      <td>tGGTGG/t</td>\n",
       "      <td>0</td>\n",
       "      <td>c.608_612delGGTGG</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>78250</th>\n",
       "      <td>NCOA3</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>GRCh37</td>\n",
       "      <td>20</td>\n",
       "      <td>46279816</td>\n",
       "      <td>46279836</td>\n",
       "      <td>+</td>\n",
       "      <td>inframe_deletion</td>\n",
       "      <td>In_Frame_Del</td>\n",
       "      <td>DEL</td>\n",
       "      <td>CAGCAGCAGCAGCAGCAGCAA</td>\n",
       "      <td>CAGCAGCAGCAGCAGCAGCAA</td>\n",
       "      <td>-</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>P-0012381-T01-IM5</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>275</td>\n",
       "      <td>93</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>ENST00000371998.3:c.3762_3782del</td>\n",
       "      <td>p.Gln1270_Gln1276del</td>\n",
       "      <td>p.Q1270_Q1276del</td>\n",
       "      <td>ENST00000371998</td>\n",
       "      <td>NaN</td>\n",
       "      <td>1248.0</td>\n",
       "      <td>CAGCAGCAGCAGCAGCAGCAA/-</td>\n",
       "      <td>0</td>\n",
       "      <td>c.3762_3782delACAGCAGCAGCAGCAGCAGCA</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>78260</th>\n",
       "      <td>TNFAIP3</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>GRCh37</td>\n",
       "      <td>6</td>\n",
       "      <td>138196871</td>\n",
       "      <td>138196872</td>\n",
       "      <td>+</td>\n",
       "      <td>frameshift_variant</td>\n",
       "      <td>Frame_Shift_Del</td>\n",
       "      <td>DEL</td>\n",
       "      <td>AC</td>\n",
       "      <td>AC</td>\n",
       "      <td>-</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>P-0012524-T01-IM5</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>868</td>\n",
       "      <td>204</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>ENST00000237289.4:c.537_538del</td>\n",
       "      <td>p.Pro180HisfsTer73</td>\n",
       "      <td>p.P180Hfs*73</td>\n",
       "      <td>ENST00000237289</td>\n",
       "      <td>NM_001270507.1</td>\n",
       "      <td>178.0</td>\n",
       "      <td>gAC/g</td>\n",
       "      <td>0</td>\n",
       "      <td>c.537_538delAC</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>8201 rows × 46 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "      Hugo_Symbol  Entrez_Gene_Id  Center NCBI_Build Chromosome  \\\n",
       "15           TP53             NaN     NaN     GRCh37         17   \n",
       "26           BAP1             NaN     NaN     GRCh37          3   \n",
       "31         ARID1A             NaN     NaN     GRCh37          1   \n",
       "32         PIK3R1             NaN     NaN     GRCh37          5   \n",
       "57          KDM6A             NaN     NaN     GRCh37          X   \n",
       "...           ...             ...     ...        ...        ...   \n",
       "78230       ARID2             NaN     NaN     GRCh37         12   \n",
       "78233         ATM             NaN     NaN     GRCh37         11   \n",
       "78241    TNFRSF14             NaN     NaN     GRCh37          1   \n",
       "78250       NCOA3             NaN     NaN     GRCh37         20   \n",
       "78260     TNFAIP3             NaN     NaN     GRCh37          6   \n",
       "\n",
       "       Start_Position  End_Position Strand  \\\n",
       "15            7578503       7578518      +   \n",
       "26           52439259      52439259      +   \n",
       "31           27105878      27105881      +   \n",
       "32           67591238      67591248      +   \n",
       "57           44969425      44969425      +   \n",
       "...               ...           ...    ...   \n",
       "78230        46244107      46244107      +   \n",
       "78233       108127013     108127014      +   \n",
       "78241         2493168       2493172      +   \n",
       "78250        46279816      46279836      +   \n",
       "78260       138196871     138196872      +   \n",
       "\n",
       "                                             Consequence  \\\n",
       "15                                    frameshift_variant   \n",
       "26                                    frameshift_variant   \n",
       "31                                    frameshift_variant   \n",
       "32     splice_acceptor_variant,coding_sequence_varian...   \n",
       "57                                    frameshift_variant   \n",
       "...                                                  ...   \n",
       "78230                                 frameshift_variant   \n",
       "78233                                 frameshift_variant   \n",
       "78241                                 frameshift_variant   \n",
       "78250                                   inframe_deletion   \n",
       "78260                                 frameshift_variant   \n",
       "\n",
       "      Variant_Classification Variant_Type       Reference_Allele  \\\n",
       "15           Frame_Shift_Del          DEL       CAGGGCAGGTCTTGGC   \n",
       "26           Frame_Shift_Del          DEL                      G   \n",
       "31           Frame_Shift_Del          DEL                   AGCT   \n",
       "32               Splice_Site          DEL            TGTTTTTCAGG   \n",
       "57           Frame_Shift_Del          DEL                      G   \n",
       "...                      ...          ...                    ...   \n",
       "78230        Frame_Shift_Del          DEL                      T   \n",
       "78233        Frame_Shift_Del          DEL                     GG   \n",
       "78241        Frame_Shift_Del          DEL                  GGTGG   \n",
       "78250           In_Frame_Del          DEL  CAGCAGCAGCAGCAGCAGCAA   \n",
       "78260        Frame_Shift_Del          DEL                     AC   \n",
       "\n",
       "           Tumor_Seq_Allele1 Tumor_Seq_Allele2  dbSNP_RS  dbSNP_Val_Status  \\\n",
       "15          CAGGGCAGGTCTTGGC                 -       NaN               NaN   \n",
       "26                         G                 -       NaN               NaN   \n",
       "31                      AGCT                 -       NaN               NaN   \n",
       "32               TGTTTTTCAGG                 -       NaN               NaN   \n",
       "57                         G                 -       NaN               NaN   \n",
       "...                      ...               ...       ...               ...   \n",
       "78230                      T                 -       NaN               NaN   \n",
       "78233                     GG                 -       NaN               NaN   \n",
       "78241                  GGTGG                 -       NaN               NaN   \n",
       "78250  CAGCAGCAGCAGCAGCAGCAA                 -       NaN               NaN   \n",
       "78260                     AC                 -       NaN               NaN   \n",
       "\n",
       "      Tumor_Sample_Barcode  Matched_Norm_Sample_Barcode  \\\n",
       "15       P-0000004-T01-IM3                          NaN   \n",
       "26       P-0000023-T01-IM3                          NaN   \n",
       "31       P-0000024-T01-IM3                          NaN   \n",
       "32       P-0000024-T01-IM3                          NaN   \n",
       "57       P-0000034-T01-IM3                          NaN   \n",
       "...                    ...                          ...   \n",
       "78230    P-0012201-T01-IM5                          NaN   \n",
       "78233    P-0012193-T01-IM5                          NaN   \n",
       "78241    P-0012245-T01-IM5                          NaN   \n",
       "78250    P-0012381-T01-IM5                          NaN   \n",
       "78260    P-0012524-T01-IM5                          NaN   \n",
       "\n",
       "       Match_Norm_Seq_Allele1  Match_Norm_Seq_Allele2  \\\n",
       "15                        NaN                     NaN   \n",
       "26                        NaN                     NaN   \n",
       "31                        NaN                     NaN   \n",
       "32                        NaN                     NaN   \n",
       "57                        NaN                     NaN   \n",
       "...                       ...                     ...   \n",
       "78230                     NaN                     NaN   \n",
       "78233                     NaN                     NaN   \n",
       "78241                     NaN                     NaN   \n",
       "78250                     NaN                     NaN   \n",
       "78260                     NaN                     NaN   \n",
       "\n",
       "       Tumor_Validation_Allele1  Tumor_Validation_Allele2  \\\n",
       "15                          NaN                       NaN   \n",
       "26                          NaN                       NaN   \n",
       "31                          NaN                       NaN   \n",
       "32                          NaN                       NaN   \n",
       "57                          NaN                       NaN   \n",
       "...                         ...                       ...   \n",
       "78230                       NaN                       NaN   \n",
       "78233                       NaN                       NaN   \n",
       "78241                       NaN                       NaN   \n",
       "78250                       NaN                       NaN   \n",
       "78260                       NaN                       NaN   \n",
       "\n",
       "       Match_Norm_Validation_Allele1  Match_Norm_Validation_Allele2  \\\n",
       "15                               NaN                            NaN   \n",
       "26                               NaN                            NaN   \n",
       "31                               NaN                            NaN   \n",
       "32                               NaN                            NaN   \n",
       "57                               NaN                            NaN   \n",
       "...                              ...                            ...   \n",
       "78230                            NaN                            NaN   \n",
       "78233                            NaN                            NaN   \n",
       "78241                            NaN                            NaN   \n",
       "78250                            NaN                            NaN   \n",
       "78260                            NaN                            NaN   \n",
       "\n",
       "       Verification_Status  Validation_Status  Mutation_Status  \\\n",
       "15                     NaN                NaN              NaN   \n",
       "26                     NaN                NaN              NaN   \n",
       "31                     NaN                NaN              NaN   \n",
       "32                     NaN                NaN              NaN   \n",
       "57                     NaN                NaN              NaN   \n",
       "...                    ...                ...              ...   \n",
       "78230                  NaN                NaN              NaN   \n",
       "78233                  NaN                NaN              NaN   \n",
       "78241                  NaN                NaN              NaN   \n",
       "78250                  NaN                NaN              NaN   \n",
       "78260                  NaN                NaN              NaN   \n",
       "\n",
       "       Sequencing_Phase  Sequence_Source  Validation_Method  Score  BAM_File  \\\n",
       "15                  NaN              NaN                NaN    NaN       NaN   \n",
       "26                  NaN              NaN                NaN    NaN       NaN   \n",
       "31                  NaN              NaN                NaN    NaN       NaN   \n",
       "32                  NaN              NaN                NaN    NaN       NaN   \n",
       "57                  NaN              NaN                NaN    NaN       NaN   \n",
       "...                 ...              ...                ...    ...       ...   \n",
       "78230               NaN              NaN                NaN    NaN       NaN   \n",
       "78233               NaN              NaN                NaN    NaN       NaN   \n",
       "78241               NaN              NaN                NaN    NaN       NaN   \n",
       "78250               NaN              NaN                NaN    NaN       NaN   \n",
       "78260               NaN              NaN                NaN    NaN       NaN   \n",
       "\n",
       "       Sequencer  t_ref_count  t_alt_count  n_ref_count  n_alt_count  \\\n",
       "15           NaN          209           58          NaN          NaN   \n",
       "26           NaN          179           60          NaN          NaN   \n",
       "31           NaN          527          234          NaN          NaN   \n",
       "32           NaN          762          445          NaN          NaN   \n",
       "57           NaN          239          284          NaN          NaN   \n",
       "...          ...          ...          ...          ...          ...   \n",
       "78230        NaN          301          173          NaN          NaN   \n",
       "78233        NaN          675           55          NaN          NaN   \n",
       "78241        NaN          286          717          NaN          NaN   \n",
       "78250        NaN          275           93          NaN          NaN   \n",
       "78260        NaN          868          204          NaN          NaN   \n",
       "\n",
       "                                                HGVSc                 HGVSp  \\\n",
       "15     ENST00000269305.4:c.412_427delGCCAAGACCTGCCCTG    p.Ala138CysfsTer27   \n",
       "26                        ENST00000460680.1:c.983delC     p.Pro328LeufsTer7   \n",
       "31               ENST00000324856.7:c.5489_5492delAGCT   p.Lys1830MetfsTer52   \n",
       "32      ENST00000274335.5:c.1746-8_1748delTTTTTCAGGTG                   NaN   \n",
       "57                       ENST00000377967.4:c.4108delG    p.Glu1370LysfsTer6   \n",
       "...                                               ...                   ...   \n",
       "78230                     ENST00000334344.6:c.2202del    p.Gly735GlufsTer23   \n",
       "78233                ENST00000278616.4:c.2197_2198del     p.Gly733CysfsTer4   \n",
       "78241                  ENST00000355716.4:c.608_612del    p.Trp203PhefsTer29   \n",
       "78250                ENST00000371998.3:c.3762_3782del  p.Gln1270_Gln1276del   \n",
       "78260                  ENST00000237289.4:c.537_538del    p.Pro180HisfsTer73   \n",
       "\n",
       "            HGVSp_Short    Transcript_ID          RefSeq  Protein_position  \\\n",
       "15         p.A138Cfs*27  ENST00000269305  NM_001126112.2             138.0   \n",
       "26          p.P328Lfs*7  ENST00000460680     NM_004656.3             328.0   \n",
       "31        p.K1830Mfs*52  ENST00000324856     NM_006015.4            1830.0   \n",
       "32        p.X582_splice  ENST00000274335             NaN               NaN   \n",
       "57         p.E1370Kfs*6  ENST00000377967     NM_021140.2            1369.0   \n",
       "...                 ...              ...             ...               ...   \n",
       "78230      p.G735Efs*23  ENST00000334344     NM_152641.2             734.0   \n",
       "78233       p.G733Cfs*4  ENST00000278616     NM_000051.3             732.0   \n",
       "78241      p.W203Ffs*29  ENST00000355716     NM_003820.2             203.0   \n",
       "78250  p.Q1270_Q1276del  ENST00000371998             NaN            1248.0   \n",
       "78260      p.P180Hfs*73  ENST00000237289  NM_001270507.1             178.0   \n",
       "\n",
       "                        Codons  Hotspot                          cDNA_change  \n",
       "15       GCCAAGACCTGCCCTGtg/tg        0         c.412_427delGCCAAGACCTGCCCTG  \n",
       "26                      cCt/ct        0                            c.983delC  \n",
       "31                   aAGCTt/at        0                   c.5489_5492delAGCT  \n",
       "32                         NaN        0            c.1746_1746delTGTTTTTCAGG  \n",
       "57                      ttG/tt        0                           c.4107delG  \n",
       "...                        ...      ...                                  ...  \n",
       "78230                   gTt/gt        0                           c.2202delT  \n",
       "78233              atGGgt/atgt        0                     c.2197_2198delGG  \n",
       "78241                 tGGTGG/t        0                    c.608_612delGGTGG  \n",
       "78250  CAGCAGCAGCAGCAGCAGCAA/-        0  c.3762_3782delACAGCAGCAGCAGCAGCAGCA  \n",
       "78260                    gAC/g        0                       c.537_538delAC  \n",
       "\n",
       "[8201 rows x 46 columns]"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "mutant_input[mutant_input['Variant_Type']=='DEL']"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "95074642",
   "metadata": {},
   "source": [
    "We can select one of these mutation arbitrarily. Here I'm just picking the mutation that falls in row 4:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "d76abc1f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Hugo_Symbol</th>\n",
       "      <th>Entrez_Gene_Id</th>\n",
       "      <th>Center</th>\n",
       "      <th>NCBI_Build</th>\n",
       "      <th>Chromosome</th>\n",
       "      <th>Start_Position</th>\n",
       "      <th>End_Position</th>\n",
       "      <th>Strand</th>\n",
       "      <th>Consequence</th>\n",
       "      <th>Variant_Classification</th>\n",
       "      <th>Variant_Type</th>\n",
       "      <th>Reference_Allele</th>\n",
       "      <th>Tumor_Seq_Allele1</th>\n",
       "      <th>Tumor_Seq_Allele2</th>\n",
       "      <th>dbSNP_RS</th>\n",
       "      <th>dbSNP_Val_Status</th>\n",
       "      <th>Tumor_Sample_Barcode</th>\n",
       "      <th>Matched_Norm_Sample_Barcode</th>\n",
       "      <th>Match_Norm_Seq_Allele1</th>\n",
       "      <th>Match_Norm_Seq_Allele2</th>\n",
       "      <th>Tumor_Validation_Allele1</th>\n",
       "      <th>Tumor_Validation_Allele2</th>\n",
       "      <th>Match_Norm_Validation_Allele1</th>\n",
       "      <th>Match_Norm_Validation_Allele2</th>\n",
       "      <th>Verification_Status</th>\n",
       "      <th>Validation_Status</th>\n",
       "      <th>Mutation_Status</th>\n",
       "      <th>Sequencing_Phase</th>\n",
       "      <th>Sequence_Source</th>\n",
       "      <th>Validation_Method</th>\n",
       "      <th>Score</th>\n",
       "      <th>BAM_File</th>\n",
       "      <th>Sequencer</th>\n",
       "      <th>t_ref_count</th>\n",
       "      <th>t_alt_count</th>\n",
       "      <th>n_ref_count</th>\n",
       "      <th>n_alt_count</th>\n",
       "      <th>HGVSc</th>\n",
       "      <th>HGVSp</th>\n",
       "      <th>HGVSp_Short</th>\n",
       "      <th>Transcript_ID</th>\n",
       "      <th>RefSeq</th>\n",
       "      <th>Protein_position</th>\n",
       "      <th>Codons</th>\n",
       "      <th>Hotspot</th>\n",
       "      <th>cDNA_change</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>FLT4</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>GRCh37</td>\n",
       "      <td>5</td>\n",
       "      <td>180030313</td>\n",
       "      <td>180030313</td>\n",
       "      <td>+</td>\n",
       "      <td>missense_variant</td>\n",
       "      <td>Missense_Mutation</td>\n",
       "      <td>SNP</td>\n",
       "      <td>C</td>\n",
       "      <td>C</td>\n",
       "      <td>A</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>P-0000004-T01-IM3</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>360</td>\n",
       "      <td>25</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>ENST00000261937.6:c.3971G&gt;T</td>\n",
       "      <td>p.Arg1324Leu</td>\n",
       "      <td>p.R1324L</td>\n",
       "      <td>ENST00000261937</td>\n",
       "      <td>NM_182925.4</td>\n",
       "      <td>1324.0</td>\n",
       "      <td>cGg/cTg</td>\n",
       "      <td>0</td>\n",
       "      <td>c.3971G&gt;T</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  Hugo_Symbol  Entrez_Gene_Id  Center NCBI_Build Chromosome  Start_Position  \\\n",
       "4        FLT4             NaN     NaN     GRCh37          5       180030313   \n",
       "\n",
       "   End_Position Strand       Consequence Variant_Classification Variant_Type  \\\n",
       "4     180030313      +  missense_variant      Missense_Mutation          SNP   \n",
       "\n",
       "  Reference_Allele Tumor_Seq_Allele1 Tumor_Seq_Allele2  dbSNP_RS  \\\n",
       "4                C                 C                 A       NaN   \n",
       "\n",
       "   dbSNP_Val_Status Tumor_Sample_Barcode  Matched_Norm_Sample_Barcode  \\\n",
       "4               NaN    P-0000004-T01-IM3                          NaN   \n",
       "\n",
       "   Match_Norm_Seq_Allele1  Match_Norm_Seq_Allele2  Tumor_Validation_Allele1  \\\n",
       "4                     NaN                     NaN                       NaN   \n",
       "\n",
       "   Tumor_Validation_Allele2  Match_Norm_Validation_Allele1  \\\n",
       "4                       NaN                            NaN   \n",
       "\n",
       "   Match_Norm_Validation_Allele2  Verification_Status  Validation_Status  \\\n",
       "4                            NaN                  NaN                NaN   \n",
       "\n",
       "   Mutation_Status  Sequencing_Phase  Sequence_Source  Validation_Method  \\\n",
       "4              NaN               NaN              NaN                NaN   \n",
       "\n",
       "   Score  BAM_File  Sequencer  t_ref_count  t_alt_count  n_ref_count  \\\n",
       "4    NaN       NaN        NaN          360           25          NaN   \n",
       "\n",
       "   n_alt_count                        HGVSc         HGVSp HGVSp_Short  \\\n",
       "4          NaN  ENST00000261937.6:c.3971G>T  p.Arg1324Leu    p.R1324L   \n",
       "\n",
       "     Transcript_ID       RefSeq  Protein_position   Codons  Hotspot  \\\n",
       "4  ENST00000261937  NM_182925.4            1324.0  cGg/cTg        0   \n",
       "\n",
       "  cDNA_change  \n",
       "4   c.3971G>T  "
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "mutant_input.iloc[[4]]"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a5512396",
   "metadata": {},
   "source": [
    "Now we need to specify parameters for our pegRNA designs for this mutation. \n",
    "- First we have to identify which mutation we want to generate designs for by putting the row index in \"mut_idx_list\".\n",
    "- Next, we specify which type of PAM sequence we want to use. Here we're using an 'NGG' PAM sequence.\n",
    "- Then, we specify which reverse transcriptase template (RTT) lengths and primer binding site (PBS) lengths we want PEGG to generate pegRNA designs with. We're choosing a broad range here to create many possibilities.\n",
    "- Finally, we specify how many pegRNA designs we want PEGG to try and spit out. It's not guaranteed to hit this number, depending on the number of available PAM sequences, but it will try and return this many pegRNA designs."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "16cbeb2b",
   "metadata": {},
   "outputs": [],
   "source": [
    "#select list of mutations to model\n",
    "mut_idx_list = [4]\n",
    "PAM = 'NGG'\n",
    "\n",
    "RTT_lengths = [10, 15, 20, 25, 30]\n",
    "PBS_lengths = [5,7, 10, 12]\n",
    "\n",
    "guides_per_mut=200\n",
    "\n",
    "ranked_filtered = pegg.run(mutant_input, mut_idx_list, records, index_list, minus_seqs, chrom_dict, PAM, RTT_lengths, PBS_lengths, guides_per_mut)\n",
    "\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "9e6f56f8",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>mutant index</th>\n",
       "      <th>gene</th>\n",
       "      <th>chr</th>\n",
       "      <th>start</th>\n",
       "      <th>end</th>\n",
       "      <th>variant_type</th>\n",
       "      <th>ref_allele</th>\n",
       "      <th>mut_allele</th>\n",
       "      <th>PAM location</th>\n",
       "      <th>PAM strand</th>\n",
       "      <th>PAM</th>\n",
       "      <th>protospacer</th>\n",
       "      <th>PBS</th>\n",
       "      <th>PBS length</th>\n",
       "      <th>RTT</th>\n",
       "      <th>RTT length</th>\n",
       "      <th>PBS_RTT_5to3</th>\n",
       "      <th>distance mut to 5' RTT</th>\n",
       "      <th>distance to nick</th>\n",
       "      <th>target sequence</th>\n",
       "      <th>target length</th>\n",
       "      <th>MIT specificity</th>\n",
       "      <th>CFD efficiency percentile</th>\n",
       "      <th>contains terminator?</th>\n",
       "      <th>contains RE site?</th>\n",
       "      <th>last templated base C?</th>\n",
       "      <th>PBS GC content</th>\n",
       "      <th>composite score</th>\n",
       "      <th>target genomic edit</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>4</td>\n",
       "      <td>FLT4</td>\n",
       "      <td>chr5</td>\n",
       "      <td>180030313</td>\n",
       "      <td>180030313</td>\n",
       "      <td>SNP</td>\n",
       "      <td>C</td>\n",
       "      <td>A</td>\n",
       "      <td>180030303</td>\n",
       "      <td>+</td>\n",
       "      <td>CGG</td>\n",
       "      <td>TGTAAAACACCTGGCCTCCT</td>\n",
       "      <td>TTGTGGACCGGA</td>\n",
       "      <td>12</td>\n",
       "      <td>GGAGCCCGGGGGTCGAGTCCGGCGGCGGCG</td>\n",
       "      <td>30</td>\n",
       "      <td>GCGGCGGCGGCCTGAGCTGGGGGCCCGAGGAGGCCAGGTGTT</td>\n",
       "      <td>17</td>\n",
       "      <td>13</td>\n",
       "      <td>GCTGTTGTAAAACACCTGGCCTCCTCGGGCCCCCCGCTCAGGCCGC...</td>\n",
       "      <td>60</td>\n",
       "      <td>60</td>\n",
       "      <td>35</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>0.583333</td>\n",
       "      <td>2.950000</td>\n",
       "      <td>CAGCTCCCCATACTCGCTGTTGTAAAACACCTGGCCTCCTCGGGCC...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>4</td>\n",
       "      <td>FLT4</td>\n",
       "      <td>chr5</td>\n",
       "      <td>180030313</td>\n",
       "      <td>180030313</td>\n",
       "      <td>SNP</td>\n",
       "      <td>C</td>\n",
       "      <td>A</td>\n",
       "      <td>180030326</td>\n",
       "      <td>-</td>\n",
       "      <td>CGG</td>\n",
       "      <td>CTGACTCCCAAGGGAGGCGG</td>\n",
       "      <td>CCTCCCTTGGGA</td>\n",
       "      <td>12</td>\n",
       "      <td>TCCTCGGGCCCCCAGCTCAGGCCGCCGCCG</td>\n",
       "      <td>30</td>\n",
       "      <td>TCCTCGGGCCCCCAGCTCAGGCCGCCGCCGCCTCCCTTGGGA</td>\n",
       "      <td>14</td>\n",
       "      <td>16</td>\n",
       "      <td>ACCTGGCCTCCTCGGGCCCCCCGCTCAGGCCGCCGCCGCCTCCCTT...</td>\n",
       "      <td>60</td>\n",
       "      <td>71</td>\n",
       "      <td>63</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>0.666667</td>\n",
       "      <td>2.873333</td>\n",
       "      <td>CAGCTCCCCATACTCGCTGTTGTAAAACACCTGGCCTCCTCGGGCC...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>4</td>\n",
       "      <td>FLT4</td>\n",
       "      <td>chr5</td>\n",
       "      <td>180030313</td>\n",
       "      <td>180030313</td>\n",
       "      <td>SNP</td>\n",
       "      <td>C</td>\n",
       "      <td>A</td>\n",
       "      <td>180030304</td>\n",
       "      <td>+</td>\n",
       "      <td>GGG</td>\n",
       "      <td>GTAAAACACCTGGCCTCCTC</td>\n",
       "      <td>TGTGGACCGGAG</td>\n",
       "      <td>12</td>\n",
       "      <td>GAGCCCGGGGGTCGAGTCCGGCGGCGGCGG</td>\n",
       "      <td>30</td>\n",
       "      <td>GGCGGCGGCGGCCTGAGCTGGGGGCCCGAGGAGGCCAGGTGT</td>\n",
       "      <td>18</td>\n",
       "      <td>12</td>\n",
       "      <td>CTGTTGTAAAACACCTGGCCTCCTCGGGCCCCCCGCTCAGGCCGCC...</td>\n",
       "      <td>60</td>\n",
       "      <td>75</td>\n",
       "      <td>35</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>0.666667</td>\n",
       "      <td>2.766667</td>\n",
       "      <td>CAGCTCCCCATACTCGCTGTTGTAAAACACCTGGCCTCCTCGGGCC...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>FLT4</td>\n",
       "      <td>chr5</td>\n",
       "      <td>180030313</td>\n",
       "      <td>180030313</td>\n",
       "      <td>SNP</td>\n",
       "      <td>C</td>\n",
       "      <td>A</td>\n",
       "      <td>180030326</td>\n",
       "      <td>-</td>\n",
       "      <td>CGG</td>\n",
       "      <td>CTGACTCCCAAGGGAGGCGG</td>\n",
       "      <td>CCTCCCTTGG</td>\n",
       "      <td>10</td>\n",
       "      <td>TCCTCGGGCCCCCAGCTCAGGCCGCCGCCG</td>\n",
       "      <td>30</td>\n",
       "      <td>TCCTCGGGCCCCCAGCTCAGGCCGCCGCCGCCTCCCTTGG</td>\n",
       "      <td>14</td>\n",
       "      <td>16</td>\n",
       "      <td>ACCTGGCCTCCTCGGGCCCCCCGCTCAGGCCGCCGCCGCCTCCCTT...</td>\n",
       "      <td>60</td>\n",
       "      <td>71</td>\n",
       "      <td>63</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>0.700000</td>\n",
       "      <td>2.706667</td>\n",
       "      <td>CAGCTCCCCATACTCGCTGTTGTAAAACACCTGGCCTCCTCGGGCC...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>4</td>\n",
       "      <td>FLT4</td>\n",
       "      <td>chr5</td>\n",
       "      <td>180030313</td>\n",
       "      <td>180030313</td>\n",
       "      <td>SNP</td>\n",
       "      <td>C</td>\n",
       "      <td>A</td>\n",
       "      <td>180030329</td>\n",
       "      <td>-</td>\n",
       "      <td>CGG</td>\n",
       "      <td>ACCCTGACTCCCAAGGGAGG</td>\n",
       "      <td>CCCTT</td>\n",
       "      <td>5</td>\n",
       "      <td>TCGGGCCCCCAGCTCAGGCCGCCGCCGCCT</td>\n",
       "      <td>30</td>\n",
       "      <td>TCGGGCCCCCAGCTCAGGCCGCCGCCGCCTCCCTT</td>\n",
       "      <td>11</td>\n",
       "      <td>19</td>\n",
       "      <td>TGGCCTCCTCGGGCCCCCCGCTCAGGCCGCCGCCGCCTCCCTTGGG...</td>\n",
       "      <td>60</td>\n",
       "      <td>55</td>\n",
       "      <td>63</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>0.600000</td>\n",
       "      <td>2.646667</td>\n",
       "      <td>CAGCTCCCCATACTCGCTGTTGTAAAACACCTGGCCTCCTCGGGCC...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>191</th>\n",
       "      <td>4</td>\n",
       "      <td>FLT4</td>\n",
       "      <td>chr5</td>\n",
       "      <td>180030313</td>\n",
       "      <td>180030313</td>\n",
       "      <td>SNP</td>\n",
       "      <td>C</td>\n",
       "      <td>A</td>\n",
       "      <td>180030314</td>\n",
       "      <td>-</td>\n",
       "      <td>CGG</td>\n",
       "      <td>GGAGGCGGCGGCGGCCTGAG</td>\n",
       "      <td>AGGCCGC</td>\n",
       "      <td>7</td>\n",
       "      <td>CCCCCAGCTC</td>\n",
       "      <td>10</td>\n",
       "      <td>CCCCCAGCTCAGGCCGC</td>\n",
       "      <td>6</td>\n",
       "      <td>4</td>\n",
       "      <td>CTGTTGTAAAACACCTGGCCTCCTCGGGCCCCCCGCTCAGGCCGCC...</td>\n",
       "      <td>60</td>\n",
       "      <td>34</td>\n",
       "      <td>7</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>yes</td>\n",
       "      <td>0.857143</td>\n",
       "      <td>-1.075714</td>\n",
       "      <td>CAGCTCCCCATACTCGCTGTTGTAAAACACCTGGCCTCCTCGGGCC...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>192</th>\n",
       "      <td>4</td>\n",
       "      <td>FLT4</td>\n",
       "      <td>chr5</td>\n",
       "      <td>180030313</td>\n",
       "      <td>180030313</td>\n",
       "      <td>SNP</td>\n",
       "      <td>C</td>\n",
       "      <td>A</td>\n",
       "      <td>180030323</td>\n",
       "      <td>-</td>\n",
       "      <td>CGG</td>\n",
       "      <td>ACTCCCAAGGGAGGCGGCGG</td>\n",
       "      <td>CCGCCTC</td>\n",
       "      <td>7</td>\n",
       "      <td>CAGCTCAGGCCGCCG</td>\n",
       "      <td>15</td>\n",
       "      <td>CAGCTCAGGCCGCCGCCGCCTC</td>\n",
       "      <td>2</td>\n",
       "      <td>13</td>\n",
       "      <td>AACACCTGGCCTCCTCGGGCCCCCCGCTCAGGCCGCCGCCGCCTCC...</td>\n",
       "      <td>60</td>\n",
       "      <td>67</td>\n",
       "      <td>27</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>yes</td>\n",
       "      <td>0.857143</td>\n",
       "      <td>-1.079048</td>\n",
       "      <td>CAGCTCCCCATACTCGCTGTTGTAAAACACCTGGCCTCCTCGGGCC...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>193</th>\n",
       "      <td>4</td>\n",
       "      <td>FLT4</td>\n",
       "      <td>chr5</td>\n",
       "      <td>180030313</td>\n",
       "      <td>180030313</td>\n",
       "      <td>SNP</td>\n",
       "      <td>C</td>\n",
       "      <td>A</td>\n",
       "      <td>180030314</td>\n",
       "      <td>-</td>\n",
       "      <td>CGG</td>\n",
       "      <td>GGAGGCGGCGGCGGCCTGAG</td>\n",
       "      <td>AGGCCGCCGC</td>\n",
       "      <td>10</td>\n",
       "      <td>CCCCCAGCTC</td>\n",
       "      <td>10</td>\n",
       "      <td>CCCCCAGCTCAGGCCGCCGC</td>\n",
       "      <td>6</td>\n",
       "      <td>4</td>\n",
       "      <td>CTGTTGTAAAACACCTGGCCTCCTCGGGCCCCCCGCTCAGGCCGCC...</td>\n",
       "      <td>60</td>\n",
       "      <td>34</td>\n",
       "      <td>7</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>yes</td>\n",
       "      <td>0.900000</td>\n",
       "      <td>-1.290000</td>\n",
       "      <td>CAGCTCCCCATACTCGCTGTTGTAAAACACCTGGCCTCCTCGGGCC...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>194</th>\n",
       "      <td>4</td>\n",
       "      <td>FLT4</td>\n",
       "      <td>chr5</td>\n",
       "      <td>180030313</td>\n",
       "      <td>180030313</td>\n",
       "      <td>SNP</td>\n",
       "      <td>C</td>\n",
       "      <td>A</td>\n",
       "      <td>180030314</td>\n",
       "      <td>-</td>\n",
       "      <td>CGG</td>\n",
       "      <td>GGAGGCGGCGGCGGCCTGAG</td>\n",
       "      <td>AGGCCGCCGCCG</td>\n",
       "      <td>12</td>\n",
       "      <td>CCCCCAGCTC</td>\n",
       "      <td>10</td>\n",
       "      <td>CCCCCAGCTCAGGCCGCCGCCG</td>\n",
       "      <td>6</td>\n",
       "      <td>4</td>\n",
       "      <td>CTGTTGTAAAACACCTGGCCTCCTCGGGCCCCCCGCTCAGGCCGCC...</td>\n",
       "      <td>60</td>\n",
       "      <td>34</td>\n",
       "      <td>7</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>yes</td>\n",
       "      <td>0.916667</td>\n",
       "      <td>-1.373333</td>\n",
       "      <td>CAGCTCCCCATACTCGCTGTTGTAAAACACCTGGCCTCCTCGGGCC...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>195</th>\n",
       "      <td>4</td>\n",
       "      <td>FLT4</td>\n",
       "      <td>chr5</td>\n",
       "      <td>180030313</td>\n",
       "      <td>180030313</td>\n",
       "      <td>SNP</td>\n",
       "      <td>C</td>\n",
       "      <td>A</td>\n",
       "      <td>180030323</td>\n",
       "      <td>-</td>\n",
       "      <td>CGG</td>\n",
       "      <td>ACTCCCAAGGGAGGCGGCGG</td>\n",
       "      <td>CCGCC</td>\n",
       "      <td>5</td>\n",
       "      <td>CAGCTCAGGCCGCCG</td>\n",
       "      <td>15</td>\n",
       "      <td>CAGCTCAGGCCGCCGCCGCC</td>\n",
       "      <td>2</td>\n",
       "      <td>13</td>\n",
       "      <td>AACACCTGGCCTCCTCGGGCCCCCCGCTCAGGCCGCCGCCGCCTCC...</td>\n",
       "      <td>60</td>\n",
       "      <td>67</td>\n",
       "      <td>27</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>yes</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>-1.793333</td>\n",
       "      <td>CAGCTCCCCATACTCGCTGTTGTAAAACACCTGGCCTCCTCGGGCC...</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>196 rows × 29 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "     mutant index  gene   chr      start        end variant_type ref_allele  \\\n",
       "0               4  FLT4  chr5  180030313  180030313          SNP          C   \n",
       "1               4  FLT4  chr5  180030313  180030313          SNP          C   \n",
       "2               4  FLT4  chr5  180030313  180030313          SNP          C   \n",
       "3               4  FLT4  chr5  180030313  180030313          SNP          C   \n",
       "4               4  FLT4  chr5  180030313  180030313          SNP          C   \n",
       "..            ...   ...   ...        ...        ...          ...        ...   \n",
       "191             4  FLT4  chr5  180030313  180030313          SNP          C   \n",
       "192             4  FLT4  chr5  180030313  180030313          SNP          C   \n",
       "193             4  FLT4  chr5  180030313  180030313          SNP          C   \n",
       "194             4  FLT4  chr5  180030313  180030313          SNP          C   \n",
       "195             4  FLT4  chr5  180030313  180030313          SNP          C   \n",
       "\n",
       "    mut_allele  PAM location PAM strand  PAM           protospacer  \\\n",
       "0            A     180030303          +  CGG  TGTAAAACACCTGGCCTCCT   \n",
       "1            A     180030326          -  CGG  CTGACTCCCAAGGGAGGCGG   \n",
       "2            A     180030304          +  GGG  GTAAAACACCTGGCCTCCTC   \n",
       "3            A     180030326          -  CGG  CTGACTCCCAAGGGAGGCGG   \n",
       "4            A     180030329          -  CGG  ACCCTGACTCCCAAGGGAGG   \n",
       "..         ...           ...        ...  ...                   ...   \n",
       "191          A     180030314          -  CGG  GGAGGCGGCGGCGGCCTGAG   \n",
       "192          A     180030323          -  CGG  ACTCCCAAGGGAGGCGGCGG   \n",
       "193          A     180030314          -  CGG  GGAGGCGGCGGCGGCCTGAG   \n",
       "194          A     180030314          -  CGG  GGAGGCGGCGGCGGCCTGAG   \n",
       "195          A     180030323          -  CGG  ACTCCCAAGGGAGGCGGCGG   \n",
       "\n",
       "              PBS  PBS length                             RTT  RTT length  \\\n",
       "0    TTGTGGACCGGA          12  GGAGCCCGGGGGTCGAGTCCGGCGGCGGCG          30   \n",
       "1    CCTCCCTTGGGA          12  TCCTCGGGCCCCCAGCTCAGGCCGCCGCCG          30   \n",
       "2    TGTGGACCGGAG          12  GAGCCCGGGGGTCGAGTCCGGCGGCGGCGG          30   \n",
       "3      CCTCCCTTGG          10  TCCTCGGGCCCCCAGCTCAGGCCGCCGCCG          30   \n",
       "4           CCCTT           5  TCGGGCCCCCAGCTCAGGCCGCCGCCGCCT          30   \n",
       "..            ...         ...                             ...         ...   \n",
       "191       AGGCCGC           7                      CCCCCAGCTC          10   \n",
       "192       CCGCCTC           7                 CAGCTCAGGCCGCCG          15   \n",
       "193    AGGCCGCCGC          10                      CCCCCAGCTC          10   \n",
       "194  AGGCCGCCGCCG          12                      CCCCCAGCTC          10   \n",
       "195         CCGCC           5                 CAGCTCAGGCCGCCG          15   \n",
       "\n",
       "                                   PBS_RTT_5to3  distance mut to 5' RTT  \\\n",
       "0    GCGGCGGCGGCCTGAGCTGGGGGCCCGAGGAGGCCAGGTGTT                      17   \n",
       "1    TCCTCGGGCCCCCAGCTCAGGCCGCCGCCGCCTCCCTTGGGA                      14   \n",
       "2    GGCGGCGGCGGCCTGAGCTGGGGGCCCGAGGAGGCCAGGTGT                      18   \n",
       "3      TCCTCGGGCCCCCAGCTCAGGCCGCCGCCGCCTCCCTTGG                      14   \n",
       "4           TCGGGCCCCCAGCTCAGGCCGCCGCCGCCTCCCTT                      11   \n",
       "..                                          ...                     ...   \n",
       "191                           CCCCCAGCTCAGGCCGC                       6   \n",
       "192                      CAGCTCAGGCCGCCGCCGCCTC                       2   \n",
       "193                        CCCCCAGCTCAGGCCGCCGC                       6   \n",
       "194                      CCCCCAGCTCAGGCCGCCGCCG                       6   \n",
       "195                        CAGCTCAGGCCGCCGCCGCC                       2   \n",
       "\n",
       "     distance to nick                                    target sequence  \\\n",
       "0                  13  GCTGTTGTAAAACACCTGGCCTCCTCGGGCCCCCCGCTCAGGCCGC...   \n",
       "1                  16  ACCTGGCCTCCTCGGGCCCCCCGCTCAGGCCGCCGCCGCCTCCCTT...   \n",
       "2                  12  CTGTTGTAAAACACCTGGCCTCCTCGGGCCCCCCGCTCAGGCCGCC...   \n",
       "3                  16  ACCTGGCCTCCTCGGGCCCCCCGCTCAGGCCGCCGCCGCCTCCCTT...   \n",
       "4                  19  TGGCCTCCTCGGGCCCCCCGCTCAGGCCGCCGCCGCCTCCCTTGGG...   \n",
       "..                ...                                                ...   \n",
       "191                 4  CTGTTGTAAAACACCTGGCCTCCTCGGGCCCCCCGCTCAGGCCGCC...   \n",
       "192                13  AACACCTGGCCTCCTCGGGCCCCCCGCTCAGGCCGCCGCCGCCTCC...   \n",
       "193                 4  CTGTTGTAAAACACCTGGCCTCCTCGGGCCCCCCGCTCAGGCCGCC...   \n",
       "194                 4  CTGTTGTAAAACACCTGGCCTCCTCGGGCCCCCCGCTCAGGCCGCC...   \n",
       "195                13  AACACCTGGCCTCCTCGGGCCCCCCGCTCAGGCCGCCGCCGCCTCC...   \n",
       "\n",
       "     target length  MIT specificity  CFD efficiency percentile  \\\n",
       "0               60               60                         35   \n",
       "1               60               71                         63   \n",
       "2               60               75                         35   \n",
       "3               60               71                         63   \n",
       "4               60               55                         63   \n",
       "..             ...              ...                        ...   \n",
       "191             60               34                          7   \n",
       "192             60               67                         27   \n",
       "193             60               34                          7   \n",
       "194             60               34                          7   \n",
       "195             60               67                         27   \n",
       "\n",
       "    contains terminator? contains RE site? last templated base C?  \\\n",
       "0                     no                no                     no   \n",
       "1                     no                no                     no   \n",
       "2                     no                no                     no   \n",
       "3                     no                no                     no   \n",
       "4                     no                no                     no   \n",
       "..                   ...               ...                    ...   \n",
       "191                   no                no                    yes   \n",
       "192                   no                no                    yes   \n",
       "193                   no                no                    yes   \n",
       "194                   no                no                    yes   \n",
       "195                   no                no                    yes   \n",
       "\n",
       "     PBS GC content  composite score  \\\n",
       "0          0.583333         2.950000   \n",
       "1          0.666667         2.873333   \n",
       "2          0.666667         2.766667   \n",
       "3          0.700000         2.706667   \n",
       "4          0.600000         2.646667   \n",
       "..              ...              ...   \n",
       "191        0.857143        -1.075714   \n",
       "192        0.857143        -1.079048   \n",
       "193        0.900000        -1.290000   \n",
       "194        0.916667        -1.373333   \n",
       "195        1.000000        -1.793333   \n",
       "\n",
       "                                   target genomic edit  \n",
       "0    CAGCTCCCCATACTCGCTGTTGTAAAACACCTGGCCTCCTCGGGCC...  \n",
       "1    CAGCTCCCCATACTCGCTGTTGTAAAACACCTGGCCTCCTCGGGCC...  \n",
       "2    CAGCTCCCCATACTCGCTGTTGTAAAACACCTGGCCTCCTCGGGCC...  \n",
       "3    CAGCTCCCCATACTCGCTGTTGTAAAACACCTGGCCTCCTCGGGCC...  \n",
       "4    CAGCTCCCCATACTCGCTGTTGTAAAACACCTGGCCTCCTCGGGCC...  \n",
       "..                                                 ...  \n",
       "191  CAGCTCCCCATACTCGCTGTTGTAAAACACCTGGCCTCCTCGGGCC...  \n",
       "192  CAGCTCCCCATACTCGCTGTTGTAAAACACCTGGCCTCCTCGGGCC...  \n",
       "193  CAGCTCCCCATACTCGCTGTTGTAAAACACCTGGCCTCCTCGGGCC...  \n",
       "194  CAGCTCCCCATACTCGCTGTTGTAAAACACCTGGCCTCCTCGGGCC...  \n",
       "195  CAGCTCCCCATACTCGCTGTTGTAAAACACCTGGCCTCCTCGGGCC...  \n",
       "\n",
       "[196 rows x 29 columns]"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ranked_filtered"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4046eadb",
   "metadata": {},
   "source": [
    "Upon printing the output, we can see that PEGG generated 196 pegRNA desgins and ranked them according to their composite score. We can also look at how many distinct protospacers are represented among these designs:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "231d933f",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "There are 14 distinct PAM sequences represented.\n"
     ]
    }
   ],
   "source": [
    "print('There are ' + str(len(np.unique(ranked_filtered['PAM location']))) + ' distinct PAM sequences represented.')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7944f7fa",
   "metadata": {},
   "source": [
    "## Step 3: Visualization of pegRNA designs\n",
    "\n",
    "Next if we want to visualize some of these designs, we can use the built-in visualization functions. Let's look at the first/highest ranked design, and the lowest ranked design. \n",
    "\n",
    "To choose which design to display, we simply have to designate which row from our ranked_filtered output to visualize:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "7276dae4",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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y8tLHDZsWO1mzZptP/300/OK7+vYseM2SVq7dm3iPffc06ht27Zbjj/++M21atXavXr16uSvv/46o2/fvk2XL1++ZODAgbnhbRcUFJiuXbs2y8vLS+ratevmtLS0wsaNG++UpJdeeinz+uuvPzQlJaXo9NNP31i3bt2CKVOmVOvWrVvz5s2bb4+U63//+9+at9xyS05ycnJRz5498+rXr1+wYMGC1HfffbfWuHHjqk+aNOm3pk2b7qpZs2bhgAEDVr377rs1V65cmTJgwIBVxW3k5OTsLKtPdu7caXr27HnYd999l56Tk7Ojd+/e6ytVqmQnTZqUdtdddzWaMmVKtY8//nhR6GOuuuqqhq+99lrtrKysgosuumhdcnKy/eqrrzK6detWtaCgwCQnJ9vSnrNp06Y7BwwYsOqll16qLUnXXHPN2uL72rVrt620x+bn5ycce+yxzZctW5bapUuXzSeffHKetVbLli1LGTt2bMZ555238YgjjtgV6bHR9tV3331X5cwzz2y6adOmpOOOO27z6aefvnH9+vVJY8aMyTjppJOav/nmmwv69u27qfSeLR0FZgAAAAAAACDO9OrVK79p06Y7hw0bVrtly5bbhgwZsjI8Jisrq/D333+f1aRJk73WC16/fn3i0Ucf3fyBBx5ocO21166vVq3aXkXUdevWJR922GE7vv/++3np6elFxds3btyYcMsttxySmJhox48f/9sxxxyzp6B8ww031H/uuefqhucwa9as1H/+85+HZGdn75wwYcK8xo0b78nl008/TTv77LMPv+GGGxqOHTt2Qa1atQqHDBmy8rvvvktbuXJlSqR9Ks0dd9xR77vvvku/9NJL177yyivLkpICpc/du3erX79+h7z33nu1hg8fvvHiiy/Ok6SxY8dWfe2112o3bNhw59SpU+fWqVOnUJK2bdu2okuXLs3WrVuXnJ2dHbHAW6xZs2a7hgwZsvLdd9+tKUkuOX/22Wdpy5YtS73yyivXvvLKK8tC79uxY4fZvn27Kemx0fRVQUGB+vXrd+i2bdsSP/vss3lnnHHGluL7Fi9enNypU6cWN9544yG9e/eeXbly5VIL6aVhiQwAAAAAAADgIFS5cmUbXlyWAle/9u/fP3fz5s2J3377bdVIj3388ceXhRaXJentt9/OyM/PT+zTp8+G0OKyJD3yyCOr0tLS9lmD4r///W/t3bt3m0cffXRZaHFZknr37p3fo0ePvG+++SZj48aN+1WnLCws1LBhw7Jq1apV8PLLL+8pLktSUlKSnn322eXGGI0YMaJG8fZXXnmlliTdcsstq4qLy5JUpUoV+9BDD63Yn3xcVK5cuSh8W6VKlWxmZuY+2128++67GcuWLUu9/PLL14YWlyUpJyen4B//+Mfq3Nzc5E8//TTicinR4gpmAAAAAAAA4CD1008/VXrkkUfqTp48OS03Nzd5586de10Vu3Tp0n3WS05NTbWdO3feZ7mLn3/+uYokHXvssfnh91WvXr2oRYsW26ZMmZIW9vxVJel///tf2pQpU/YpZq9fvz65sLBQc+bMqXT88ceXuqREaWbNmlUpLy8v6ZBDDtl52223ZUeKSU1NLZo/f36l4v/Pnj27iiSddNJJ++zPqaeemp+YmBjzVb3ROPXUU/Nr165d8Oyzz9adOXNmlVNOOWVTt27dthxzzDHbQgvksfr++++rStKyZctSQtfQLjZ//vxUSfr1118rSYp5mQwKzAAAAAAAAMBB6Ouvv67aq1evw3fv3m2OOeaY/JNPPjkvPT29MCEhQbNmzar89ddfZ4QXnCWpRo0aBQkJ+15QvHnz5kRJqlu37u5Iz5eVlbXP9ry8vCRJeuGFF+qUluvmzZv36wrmdevWJUrSkiVLUp944ol6JcVt3bp1z5f35efnJ0pSgwYN9sk7KSlJGRkZ+34rYDmqUaNG0ffffz/3jjvuyB47dmzGd999ly5JGRkZuy+//PJ1gwYNWpWamhpzkXvDhg1JkjR69OjM0aNHlxi3ZcuW/ep7CswAAAAAAADAQeihhx6qt2PHjoTPPvvs9169eu11le4dd9xR9+uvv86I9DhjIi/9W7wExurVqyPWFNetW7fP9uLHrF+//ucaNWrs15IPpcnMzCyUpJNOOilvzJgxC6J5THFuy5cvTwr/Mr3du3crLy8vsU6dOp7lLElNmjQpGDly5JKioqIl06dPr/TVV1+lv/zyy1lPPvlkvaKiIv33v/91Woc6VHp6eqEkDR8+fH7//v3364v8SsMazAAAAAAAAEAcKl7CobCwMGJFePHixanVq1cvDC8uS9J3332XFukxpWnXrt02SZo0adI+j920aVPC3Llzq4Rvb9++/VZJGjNmTNTPV7xfu3dHvFA6orZt2+5IS0srnDFjRtVIV2VH0rp1622SNHbs2H1y+/LLL9NK6tdIEhISrEt8hMerY8eOO+666661Y8eO/V2SRo8enVHW40rrq2OOOWarJE2cONF5rF1QYAYAAAAAAADiUFZWVqExRitWrNhnHWVJatCgwa5NmzYlTp48uXLo9ieeeKJW8XIMLi666KK8atWqFX7yySc1fvjhh73avOOOO+oVLzkRasCAAWuTkpLs7bff3nDWrFmp4ffv2LHDfPnll9VCt2VmZu6WpPnz50fcr0iSk5N15ZVXrl23bl3ylVde2XDLli37FHuXLFmSPG3atD1rMF955ZW5kvT444/XW7NmzZ7ct23bZu6+++760T63JGVkZBRu3LgxKdLzlmTq1KmV5s2bt88+rly5MlmSKlWqVObV06X1Vb9+/fIaNmy484033sh69913q0d6/Lhx46rm5+ezRAYAAAAAAAAQydzmLTpUdA5eqV69etGRRx65ddq0adV69+7duGnTpjsSExN17rnn5nXu3Hn7zTffvOa7775LP/HEE5ufccYZG9LT0wtnzJhRdfr06dVOPfXUjV9++WWmy/PVqFGj6LHHHlt6ww03NO7Ro0fzM844Y2PdunULpkyZUu23336rfNRRR22ZOnVqtdD1m9u1a7fjv//97+Kbb745p3379i27du26uUmTJjsKCgrM8uXLU3766ae0zMzMgkWLFv1S/Jju3btvHj16dObZZ599WM+ePTdVrly56JBDDtn597//fUNp+Q0ePHjV7NmzK48YMSJr3LhxGV26dNmcnZ1dsG7duqSFCxdW+vnnn6vddtttKzp06LBakk4++eStl1122drXX3+9duvWrVuefvrpG5OTk+1XX32VkZ6eXpiVlVUQbd907dp185w5c6p079798C5duuSnpqbatm3bbuvXr1+JS1OMHj06/f7772/Yrl27LYcddtiOrKys3StWrEgeN25cRkJCggYMGLCmrOctra9SU1Pte++9t6BXr15NL7zwwsMGDx68tWXLltuqVKlStGLFipSZM2dWWb58eeqSJUtmpqWlxbwUSFQFZmPMYkn5kgol7bbWdnR5knUb8vXwC6M0+/flSklOUv06Gbrzul5q3CArYvySKRM0fsidOvvxEcqof0ipbefm5unRR1/TrFm/Kz29mpKTk3TFFX3Us2fn/cpl87bNumPEHZKkjVs3KsEkqHqVQKH/ySueVHJi8n7vp5fxrm1L0fd7LH3jMqYuuXs9Tl7Nr1hyd8nFte1Y+tHLfCS3OeN1vGvbXp7zvDpveD0HYon3075WVC7a53f/7rm49Hu8jmks8X7KxU+vNbHsq5fv2/w0x8ilfHJxbd9v890vuXv5PvJAxHt13virnfO87Buv+93L85iXx7Wfjj2/zXcvaxAo2/DhwxfddNNNDSdOnFh91KhRNay1atCgwa7OnTtvP++88zaPGDFi/qBBg+qNGjWqRkJCgj3yyCO3jho1at4ff/yR6lpglqTrr79+Q40aNXY/8sgj2Z9//nlmcnKyPeqoo/InTJjw28CBAxtIf66HXOyGG27Y0LFjx+2DBw+u88MPP6R999136ZUrVy6qXbt2wemnn77xwgsv3KtwPGDAgNwlS5akfvzxxzWee+65OoWFheaoo47aUlaBOTU11Y4dO3bBc889V2P48OG1xo8fn7Ft27aEzMzM3Q0bNtx56623rrjyyivXhz7m1VdfXXb44YfvePnll2uPGDEiKyMjY/cpp5yS9+STT6448sgjj4i2Xx555JFVeXl5iePGjcv4+eefqxUWFuqcc85ZX1qBuVevXpuXLl265scff0wbM2ZMxtatWxOzsrIKjj322M233HLLmpNOOmlrWc9bVl917tx5+4wZM37997//XWfs2LEZ77//fk1jjLKysgpatmy57Y477lhZr1696NciicBYW/YXEQYLzB2ttblRtbrowz2NWmt14YDndNZJHXTRGYGT4twFK7V1+051bNVYg/K67vPwb568R9s35qpeq45qd/5Ve913S6tVe3621urii+9S797d1LfvKZKklSvX6Ztvpqp//9MlScnL/9grvrRcJGnhxLb75DN84nBVSqmk844+b6/th3ad4dR2KC/jo4l17fcLZm3eJ760vhl55N5/ZVFa25J0e8bEqHOPNEal5eI6TgUNmu6JPRDzq7TcG/bbGnUukrRsRNWo2y5JWblEm0+kXEpr33XOhPMyPtr5K5X/Oc+l7XDlfc5znQPhuZT38eSyr16fN1xykaLv9z7qs+fn2V0fcDqHFecS7ThFE9t+RL898dMueqtCx3R/4su77bmn3bUntsXofzvFN5n1blRjVNyXfnidDD+Plef7tlAVfd5wPZa8nu9evj/xMpf9yccP8901Hy9z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mFBgBgAAAAAAAADEhAIzAAAAAAAAACAmSRWdAAAAAAAAAFCecm7/vENF5xCtxYPOmFbROQD7gyuYAQAAAAAAAAAxocAMAAAAAAAAICajRo1KM8Z0GDhwYHZF54KKwRIZAAAAAAAAOGj5cQmKeFrCAygLVzADAAAAAAAAAGJCgRkAAAAAAACIU/PmzUsxxnQ499xzc37++edKPXv2bFK9evW2lStXbtehQ4dmH374YXpo/NChQ2saYzoMHTq05vvvv5/eqVOnZmlpaW2NMXuuql6/fn3i3//+9/o5OTmtUlNT26enp7c97rjjmn788cdpoW2de+65OWeeeebhkvTEE0/UM8Z0KL6NGjVqT+z27dvNnXfeWffwww8/onLlyu2qVavWrkOHDs1efvnlzEj79NZbb1U/5phjDs/KyjoyJSWlfe3atY886qijmg0aNCgrNK5Tp07NjDEdtm/fbm666abs+vXrt05JSWnfsGHDVrfccku9HTt2mPC233zzzYw+ffo0zsnJaVW5cuV2VapUadeyZcsWDz30UO3CwsKIfZyfn59w11131W3VqlWLqlWrtqtSpUq7Qw89tOXll1/ecNmyZUnhsXfccUfd5s2bH1Hcftu2bZu/8MILNcLbDV1e5JtvvqlywgknHFa9evW2xpgO8+bNS4mYjA+xRAYAAAAAAAAQ55YuXZrarVu35k2bNt1+8cUXr1u9enXy559/XuP8889v+vzzzy+85pprNobGf/TRR5nffvtt9a5du266+OKL1y1dujRVknJzcxOPPvro5gsWLKjUqlWrbaeffvqa9evXJ33++ec1zjnnnMMHDx685NZbb82VpLPOOitPkj788MOaRx111Jbjjjsuv7j9pk2b7pSkHTt2mG7duh0+derUao0bN95x6aWXrtu2bVvCF198kXnNNdccOmPGjNVPP/30iuLH/ec//6l16623HlKrVq2Cnj17bqpZs+budevWJf36669Vhg8fXuv2229fF77vvXr1OnT27NlVTz/99I3Jycn2q6++yhgyZEj2zz//XHXcuHHzExL+vMb23nvvrZ+QkKC2bdtuzc7O3rVp06bESZMmpd9zzz0Nf/rpp6off/zxotC2161bl3j88cc3mzdvXuWcnJwdF1xwQW5KSopdtGhR6siRI2udd955eQ0bNswv7ruuXbsePnfu3CpHHHHEtgsuuCC3qKjITJgwIf36669v/Msvv1QaOnToyvD8p0yZUvXpp5+u26FDhy19+/bNXb9+fVJqaqqNZR5UBArMAAAAAAAAQJz76aefql177bVrXnjhheXF2yZOnLi2R48ezW+55ZZDzj333E01atQoKr5vwoQJ1UeOHPnHeeedtzm0nZtuuqnBggULKl100UW5w4cPX1JcnJ09e/bqLl26tLjrrrsa9e7de3OzZs12XXLJJXmZmZmFH374Yc3jjjsuf8iQIfsUTx944IE6U6dOrda1a9dN48aNm5+cnCxJWrFixcpOnTq1eOaZZ+r26dMn76STTtoqScOGDctKTk62M2bM+LV+/fq7Q9tatWpVxFrmggULKv/yyy+/ZGVlFUrStm3bVnTp0qXZN998U/25556r8fe//31DceyoUaPmt2zZcmfo4wsLC3X++efnfPTRRzXHjx+/tkePHluL77vyyisbzZs3r3K/fv3WvfHGG0sTExP3PG7jxo0JRUVFe66Svu666xrOnTu3yl133bX8oYceWlO8fdu2beaUU0457Omnn6534YUXbuzSpcv20OefNGlS+qOPPrqncB9vWCIDAAAAAAAAiHPVqlUrHDRo0F4F3q5du27r06fPhvz8/MS33nprr+UoTjzxxLzw4vLOnTvNRx99VKNKlSpFTzzxxPLQK39bt26988orr1xbUFBgXnrppZrR5jVixIhaxhg9+eSTy4uLy5JUv3793f/85z9XSdKLL76419IXiYmJNiUlZZ8reOvVq7c7fJsk3XrrrSuLi8uSVKVKFfvQQw+tkKQ33nijVmhseHE5+HwaOHDgWkn64osv9iwpsmLFiqQvvviiRlZWVsFzzz23PLS4LEmZmZlFNWvWLJSk1atXJ37yySc1W7ZsuS20uFycz6OPPrrcWqs33nhjn75r3rz59ngtLktcwQwAAAAAAADEvZYtW27LzMwsCt/erVu3/A8//LDmzz//XEXS+uLtHTt23BoeO3PmzEo7duxIaN++/ZY6derssyBxz54984cOHVpv5syZVaLJaePGjQlLly5NrV27dkG7du12hN9/2mmnbR44cKDmzJmzp73zzz9/wwMPPNCgZcuWLc8888yNJ5xwQv6JJ564JTs7O2JxWZJOPvnkLeHbTj311PzExET766+/7pXr6tWrEx988MG648aNq758+fLU7du373UB7sqVK/esffztt99WLSoqUqdOnbakp6fv07ehvvvuu6qFhYUyxmjgwIHZ4fcXFBQYSfr9998rhd/Xrl27fcYinlBgBgAAAAAAAOJcVlZWQaTt2dnZBZK0efPmvS6/rVu37j7xGzduTJSk2rVrR2yrQYMGEdsqyYYNGxJLy61Ro0b7tHf//fevqVWr1u6XXnop67XXXqv96quv1jbG6Kijjsp/7LHHlnft2nVbSXmFSkpKUkZGRuGGDRv21D9zc3MTO3bseMSKFStSWrduvfWcc85ZX6NGjd1JSUnKy8tLHDZsWO2dO3fuWfKiuD/q1au3q6x9XbduXZIkzZkzp0powTzc1q1b91lRok6dOhH7J15QYAYAAAAAAADi3Lp165IjbV+5cmWyJKWnp+91RbIxZp/YzMzMQklau3ZtxLaWL1+eLElpaWn7XN0cSY0aNQolKTc3N2J7S5cujdjejTfeuP7GG29cn5ubm/j1119X++ijjzLee++9Wr179z78l19+mRO+NvPy5cuTmzZtulcRePfu3crLy0usWrXqnraHDh1aa8WKFSkDBgxYFb5e9Lhx46oOGzasdui24v5YtWpVisqQkZFRKElXXXXVmpdffnl5WfGhIo1FPKHADABAHGg98b6KTgFRmHvaXRWdAgAAAP6ifvnllyobN25MCF8mY8KECWmS1K5du32u/A135JFH7qhUqVLRb7/9VmXdunWJoesaS9LXX3+dJklt27bd01ZSUpKVAl+UFy4zM7OoYcOGO5cvX546e/bs1NatW++1/vGXX36ZJkmtW7eOmFutWrUK+/btu6lv376bioqK9N5779UaO3ZstcsvvzwvNG7MmDHVmjZtuiF025dffplWWFhojjjiiD1tz58/P1WSLrzwwo3hzzV+/Pi08G1du3bdmpCQoClTplTbvHlzQmnLZBTH/vjjj/u0c7DzpMBc0KBp1LEXTNxcdlCI5Iw/PMtFkkYemV52UNAtjm37iWu/u/SLJF0wy639gn7R96VrLq7jlLw8+jnm5fySpNuXz3Bsv6tTvAuvc3GdM37iMn9djz2XtmPhMidd54Ar1+PJhdfnDVdR5zPL0zT2SzTnSi/H9GAR7WuOS196Pd9dzmOu79tceTnHXN4PSN7Pdy/fn7jyU9/47fzuwjV3V16/bru4YFZVp3iXc4fre04vz3mS9+c9F6594zJnvGxb8td7CK8/w7nw03x3/ZzieiypXa2yY7CPLVu2JN5+++3ZL7zwwp6rZydOnFjlk08+qVGtWrXC/v3771NUDVepUiV71llnbXjnnXdq/fOf/8x+/fXXlxXf98svv6S+8sortZOSkuzVV1+9Zy3nrKys3ZK0bNmyiFf59uvXL3fw4MH1BwwY0ODLL79ckJQUKEeuWrUq6bHHHsuWpKuvvnrPF9y9//776X369Nkc+oWA0p9XQVepUmWfIu9jjz2WfcEFF2wqLohv27bN3H333fUl6ZJLLtmTa05Ozi5JGjt2bFqnTp22F2+fNGlS5aeeeqpueLvZ2dm7zzjjjA2fffZZjb/97W8N3njjjaWhX/S3adOmhN27d5uaNWsW1q9ff3fv3r3Xf/zxxzVvvfXWeg8//PCq8H345ZdfUhMTE23z5s3LXHIjnnAFMwAAAAAAAA5aObd/3qGiczgQOnbsuOXtt9+uNW3atKqdO3fesnr16uTPP/+8hrXWDBkyZEmNGjVK/ZK6Yk8++eTyyZMnV3vjjTdqz5gxo+pxxx2Xv379+qTPP/88c+vWrYkPP/zw0tACaZs2bXbUrl27YNSoUTUuvPBC27Bhw13GGF199dXrDz/88F3333//mrFjx1b/+uuvM1q0aNHyxBNP3LRt27aEzz//PHPDhg1J119//epTTjllz5f0XXHFFYempqbajh075jdq1GiXtVY//vhj2pw5c6q0bNlyW58+ffLDc27SpMn2li1btjz99NM3Jicn26+++ipj2bJlqSeccMKmG264YU+B+dprr13/7LPP1r333nsbTpgwIa1JkyY7FixYUOmbb76pfsopp+R9/vnnmeFtv/LKK0uPO+64yiNGjMj64Ycf0k444YTNKSkpdsmSJSnffvtt9XfeeWd+r1698otjFy1aVOk///lP9nvvvVfzqKOO2lK7du2CVatWJf/xxx+V58yZU+WFF15YSIEZAAAcEP2P/Ea3tFrl9BjXKwux/w6bPdL5MYwTAAAAylujRo12vvDCC0tuvfXW+m+++WZWQUGBOeKII7bdddddK88999yoLyOvU6dO4ZQpU36755576n7xxReZL730Up3U1NSi1q1bb/3nP/+55pxzztmrraSkJI0cOXL+7bff3qC4CG2tVdeuXbccfvjhuypVqmS//fbb3x988ME6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Tfn3v/9d+/DDDz+iUqVK7Tt16tSsOGbWrFmpp5xySpP09PS2lStXbteuXbvm77zzTvWhQ4fWLGlJjgULFiRfeumljRo0aNA6JSWlfUZGRtsePXocNmHChCqhcfXr12/9xBNP1JOkM8888/DQpT7K2teioiI99dRTNdu1a9c8MzOzTWpqavu6deseedxxxzV96aWXMmPNqdiyZcuSLrjggkNq1qzZplKlSu2bN29+xFNPPVVz1KhRacaYDgMHDswuK8eDDVcwAwAAAAAAAAexe++9t35CQoLatm27NTs7e9emTZsSJ02alH7PPfc0/Omnn6p+/PHHiyI97sYbb2w0derUat27d9/Us2fPTYmJiZKkn3/+uVL37t2bb9q0KfGEE07Y1LJly+2LFy9OveSSS5p069ZtU6S2vvvuuypnnnlm002bNiUdd9xxm08//fSN69evTxozZkzGSSed1PzNN99c0Ldv302SdN11160ZNWpU5tSpU6udc8456w855JCor8a+6aab6j/zzDN169evv6tXr14bq1evXrh69erkmTNnVv3ggw8yr7nmmo2x5CRJq1evTuzSpUvz5cuXp7Zv337L0UcfvWX16tXJt9566yHHHntsxP3+K6DADAAAAAAAABzERo0aNb9ly5Y7Q7cVFhbq/PPPz/noo49qjh8/fm2PHj22hj9uzpw5VaZOnfpr8+bN9yrw3nDDDY02bdqUOGjQoKW33XbbuuLtI0eOTO/bt2/T8HYKCgrUr1+/Q7dt25b42WefzTvjjDO2FN+3ePHi5E6dOrW48cYbD+ndu/fsypUr23vvvXdtXl5e0tSpU6tdccUV63v16pUf7b4OHz48q3bt2gVz5879JS0trSj0vlWrVu2phbrmJEkDBgxosHz58tQrr7xy7SuvvLKsOH7ixIlre/To0TzaHA82LJEBAAAAAAAAHMTCi8uSlJiYqIEDB66VpC+++CI90uP+8Y9/rA4vLs+fPz/5xx9/TGvUqNHOf/7zn+tC77vgggs2H3PMMZvD23n33Xczli1blnr55ZevDS3kSlJOTk7BP/7xj9W5ubnJn376acQ8XCUlJdmkpCQbvr1evXq7Y81p586d5uOPP65RtWrVokcffXSv9a+7du26rU+fPhvKI/d4xBXMAAAAAAAAwEFs9erViQ8++GDdcePGVV++fHnq9u3b97rodOXKlSmRHnfMMcfsc1XzlClTqkhS+/bttxQvmRH2mC0//PDDXoXi77//vqokLVu2LCXSGsXz589PlaRff/21kqT9WmrirLPOWv/666/XbtasWcszzzxzY/fu3fO7d+++tWbNmnstNu2a08yZMyvt2LEjoUOHDlvC25Kkbt265X/44Yf7rDv9V0CBGQAAAAAAADhI5ebmJnbs2PGIFStWpLRu3XrrOeecs75GjRq7k5KSlJeXlzhs2LDaO3fuNJEe26BBg4LwbXl5eYmSVLt27d37PkKqU6fOPts3bNiQJEmjR4/OHD16dIm5btmyZb9XW3j55ZeXNWnSZOfw4cNrPfvss3WfffbZuomJibZbt26b/vvf/y5v1arVzlhy2rhxY6IkZWVl7dMnkpSdnR1x+18BBWYAAAAAAADgIDV06NBaK1asSBkwYMCqIUOG7LW0w7hx46oOGzasdkmPNWbfunP16tULJWnt2rUR64pr1qzZZ3t6enqhJA0fPnx+//79Pf0yvKSkJN1zzz1r77nnnrUrVqxIGjduXLV33323xujRozNPP/30yvPmzfulcuXK1jWnzMzMQklat25dcqT7V65cGXH7XwFrMAMAAAAAAAAHqeKlHi688MKN4feNHz8+zbW9zp07b5Ok6dOnVyss3GelCP3www/VwrcVL7UxceLEqJ8vMTHRSoEvI4xV/fr1d1922WV5X3zxxcKjjz46f9myZak//fRT5VhyatOmzY5KlSoV/fbbb1XWr1+/z9ogEyZMcO7LgwVXMAN/cT3mzo0u8B5v81CUafjR80p1iJ7sYduxcOh4r+eAp/vqOMHm+qjfAQAAAGA/5OTk7JKksWPHpnXq1Gl78fZJkyZVfuqpp+q6tnfYYYcVdOrUKX/KlClp//nPf7Juu+22PV/09/7776eHr78sSf369cu77777dr7xxhtZPXr0yO/bt+8+VwyPGzeuaufOnbenpaUVSVLNmjV3S9LixYsjrg8dyfbt282YMWOqnXnmmfkJCX9eV7tz506Tl5eXJElVq1YtiiWn1NRUe9ZZZ2145513av3rX//KfuWVV5YVx02cOLHKJ598UiPaPA82FJgBAAAAAABw0DLGdKjoHCrStddeu/7ZZ5+te++99zacMGFCWpMmTXYsWLCg0jfffFP9lFNOyfv8888zXdt89tlnl3bv3r357bff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\n",
      "text/plain": [
       "<Figure size 1440x324 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#visualizing top ranked guide\n",
    "pegRNA_df_loc=0 #choosing which guide to display from the above dataframe\n",
    "h = pegg.pegrna_display(ranked_filtered, pegRNA_df_loc, records, index_list)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "69b92cd5",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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q1evpr/++muliy66KNMY03HJkiUJwe1Onjy5yllnndWkZs2abePj4zvUqVPn+P79+zdauXJlfGFM4ZIfM2fOrCpJgfvUuXPn5uH0S15enoYOHZretm3bFlWrVm2flJTUvmXLlsc9/vjj6fn5h9eFCwoK9Pjjj6cfc8wxrRITEzvUqlXr+Kuuuqrh1q1bY0O1H7wGc+HayOvXr09Yv359QmDO4SxdsmbNmribbrqpfmZmZuukpKT2ycnJ7TIzM1tfdNFFmb///vvBfgxeg9lJXy1btiz+qquuali/fv02CQkJHVJTU9v17NnzmClTplQOp09LwgxmAAAAAAAAIMr07NkzJzs7O3bkyJG1mjdvvvecc87JLryvU6dOeyRp8+bNsffff3/Ddu3a7frb3/62s2bNmgc2btwY/91336X269ev2dq1a1cNGjRoS3DbeXl5plu3bs2zs7PjunXrtjM5OTm/cePG+yTptddeS7vllluaJCQkFJxzzjnb69Spkzdjxoyq3bt3b9GiRYu9oXL973//W+POO+/MjI+PL+jVq1d2vXr18pYtW5b4wQcf1Jw0aVK1adOmLW7WrNn+GjVq5A8cOHDDBx98UGP9+vUJAwcO3FDYRmZm5r6S+mTfvn2mV69ex/z4448pmZmZuX369NlaqVIlO23atOR777234YwZM6p+9tlnKwIfc/311zd46623aqWnp+ddfvnlWfHx8fbbb79N7d69e5W8vDwTHx9vi3vOZs2a7Rs4cOCG1157rZYk3XjjjZsL72vfvv2e4h6bk5MTc/LJJ7dYs2ZNYteuXXeeccYZ2dZarVmzJmHixImpF1988fbjjjtuf6jHhttXP/74Y+Xzzjuv2Y4dO+JOOeWUneecc872rVu3xk2YMCH19NNPbzFq1Khl/fr121F8zxaPAjMAAAAAAAAQZXr37p3TrFmzfSNHjqzVqlWrPcOHD18fHJOenp7/xx9/zG/atOkh6wVv3bo19sQTT2zx8MMP17/pppu2Vq1a9ZAialZWVvwxxxyT+9NPPy1JSUkpKNy+ffv2mDvvvLNRbGysnTx58uKTTjrpYEH51ltvrffSSy/VCc5h/vz5if/6178aZWRk7JsyZcqSxo0bH8zliy++SL7ggguOvfXWWxtMnDhxWc2aNfOHDx++/scff0xev359Qqh9Ks6QIUPq/vjjjylXXXXV5jfeeGNNXJyv9HngwAH179+/0UcffVRz9OjR26+44opsSZo4cWKVt956q1aDBg32zZw5c1Ht2rXzJWnPnj3runbt2jwrKys+IyMjZIG3UPPmzfcPHz58/QcffFBDkpzk/OWXXyavWbMm8brrrtv8xhtvrAm8Lzc31+zdu9cU9dhw+iovL0/9+/dvsmfPntgvv/xyybnnnrur8L6VK1fGd+7cueVtt93WqE+fPguSkpKKLaQXhyUyAAAAAAAAgAooKSnJBheXJd/s1wEDBmzZuXNn7A8//FAl1GOffvrpNYHFZUl67733UnNycmL79u27LbC4LElPPPHEhuTk5MPWoPjvf/9b68CBA+bJJ59cE1hclqQ+ffrk9OzZM/v7779P3b59e6nqlPn5+Ro5cmR6zZo1815//fWDxWVJiouL04svvrjWGKMxY8ZUL9z+xhtv1JSkO++8c0NhcVmSKleubB999NF1pcnHiaSkpILgbZUqVbJpaWmHbXfigw8+SF2zZk3iNddcszmwuCxJmZmZef/85z83btmyJf6LL74IuVxKuJjBDAAAAAAAAFRQs2bNqvTEE0/UmT59evKWLVvi9+3bd8is2NWrVx+2XnJiYqLt0qXLYctd/Prrr5Ul6eSTT84Jvq9atWoFLVu23DNjxozkoOevIkn/+9//kmfMmHFYMXvr1q3x+fn5WrhwYaW//e1vxS4pUZz58+dXys7OjmvUqNG+wYMHZ4SKSUxMLFi6dGmlwv8vWLCgsiSdfvrph+3PWWedlRMbGxvxrN5wnHXWWTm1atXKe/HFF+vMmzev8plnnrmje/fuu0466aQ9gQXySP30009VJGnNmjUJgWtoF1q6dGmiJP3++++VJEW8TAYFZgAAAAAAAKAC+u6776r07t372AMHDpiTTjop54wzzshOSUnJj4mJ0fz585O+++671OCCsyRVr149Lybm8AnFO3fujJWkOnXqHAj1fOnp6Ydtz87OjpOkV155pXZxue7cubNUM5izsrJiJWnVqlWJzzzzTN2i4nbv3n3wy/tycnJiJal+/fqH5R0XF6fU1NTDvxWwDFWvXr3gp59+WjRkyJCMiRMnpv74448pkpSamnrgmmuuyRo6dOiGxMTEiIvc27Zti5Ok8ePHp40fP77IuF27dpWq7ykwAwAAAAAAABXQo48+Wjc3Nzfmyy+//KN3796HzNIdMmRIne+++y411OOMCb30b+ESGBs3bgxZU8zKyjpse+Fjtm7d+mv16tVLteRDcdLS0vIl6fTTT8+eMGHCsnAeU5jb2rVr44K/TO/AgQPKzs6OrV27tms5S1LTpk3zPvzww1UFBQWr5syZU+nbb79Nef3119OfffbZugUFBfrvf//raB3qQCkpKfmSNHr06KUDBgwo1Rf5FYc1mAEAAAAAAIAoVLiEQ35+fsiK8MqVKxOrVauWH1xclqQff/wxOdRjitO+ffs9kjRt2rTDHrtjx46YRYsWVQ7e3qFDh92SNGHChLCfr3C/DhwIOVE6pHbt2uUmJyfnz507t0qoWdmhtGnTZo8kTZw48bDcvvnmm+Si+jWUmJgY6yQ+xOPVqVOn3HvvvXfzxIkT/5Ck8ePHp5b0uOL66qSTTtotSVOnTnU81k5QYAYAAAAAAACiUHp6er4xRuvWrTtsHWVJql+//v4dO3bETp8+PSlw+zPPPFOzcDkGJy6//PLsqlWr5n/++efVf/7550PaHDJkSN3CJScCDRw4cHNcXJy9++67G8yfPz8x+P7c3FzzzTffVA3clpaWdkCSli5dGnK/QomPj9d11123OSsrK/66665rsGvXrsOKvatWrYqfPXv2wTWYr7vuui2S9PTTT9fdtGnTwdz37Nlj7rvvvnrhPrckpaam5m/fvj0u1PMWZebMmZWWLFly2D6uX78+XpIqVapU4uzp4vqqf//+2Q0aNNj3zjvvpH/wwQfVQj1+0qRJVXJyclgiAwAAAAAAAAhlUYuWHcs7B7dUq1at4Pjjj989e/bsqn369GncrFmz3NjYWF100UXZXbp02XvHHXds+vHHH1NOO+20Fueee+62lJSU/Llz51aZM2dO1bPOOmv7N998k+bk+apXr17w1FNPrb711lsb9+zZs8W55567vU6dOnkzZsyounjx4qQTTjhh18yZM6sGrt/cvn373P/+978r77jjjswOHTq06tat286mTZvm5uXlmbVr1ybMmjUrOS0tLW/FihW/FT6mR48eO8ePH592wQUXHNOrV68dSUlJBY0aNdr3j3/8Y1tx+Q0bNmzDggULksaMGZM+adKk1K5du+7MyMjIy8rKilu+fHmlX3/9tergwYPXdezYcaMknXHGGbuvvvrqzW+//XatNm3atDrnnHO2x8fH22+/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qquy9uzZE/P111+n3XjjjU3mzp278fnnn19X+Lj//Oc/Ne+6665GNWvWzOvVq9eOGjVqHMjKyor7/fffK48ePbrm3XffnRW87717926yYMGCKuecc872+Ph4++2336YOHz4849dff60yadKkpTExf82xfeCBB+rFxMSoXbt2uzMyMvbv2LEjdtq0aSn3339/g1mzZlX57LPPVgS2nZWVFfu3v/2t+ZIlS5IyMzNzL7300i0JCQl2xYoViR9++GHNiy++OLtBgwY5hX3XrVu3YxctWlT5uOOO23PppZduKSgoMFOmTEm55ZZbGv/222+VRowYsT44/xkzZlR5/vnn63Ts2HFXv379tmzdujUuMTHRRnIclAcKzAAAAAAAAECUmzVrVtWbbrpp0yuvvLK2cNvUqVM39+zZs8Wdd97Z6KKLLtpRvXr1gsL7pkyZUu3DDz/88+KLL94Z2M7tt99ef9myZZUuv/zyLaNHj15VWJxdsGDBxq5du7a89957G/bp02dn8+bN91955ZXZaWlp+Z9++mmNU045JWf48OGHFU8ffvjh2jNnzqzarVu3HZMmTVoaHx8vSVq3bt36zp07t3zhhRfq9O3bN/v000/fLUkjR45Mj4+Pt3Pnzv29Xr16BwLb2rBhQ8ha5rJly5J+++2339LT0/Mlac+ePeu6du3a/Pvvv6/20ksvVf/HP/6xrTB23LhxS1u1arUv8PH5+fm65JJLMseOHVtj8uTJm3v27Lm78L7rrruu4ZIlS5L69++f9c4776yOjY09+Ljt27fHFBQUHJwlffPNNzdYtGhR5XvvvXfto48+uqlw+549e8yZZ555zPPPP1/3sssu2961a9e9gc8/bdq0lCeffPJg4T7asEQGAAAAAAAAEOWqVq2aP3To0EMKvN26ddvTt2/fbTk5ObHvvvvuIctRnHbaadnBxeV9+/aZsWPHVq9cuXLBM888szZw5m+bNm32XXfddZvz8vLMa6+9ViPcvMaMGVPTGKNnn312bWFxWZLq1at34F//+tcGSXr11VcPWfoiNjbWJiQkHDaDt27dugeCt0nSXXfdtb6wuCxJlStXto8++ug6SXrnnXdqBsYGF5f9z6dBgwZtlqSvv/764JIi69ati/v666+rp6en57300ktrA4vLkpSWllZQo0aNfEnauHFj7Oeff16jVatWewKLy4X5PPnkk2uttXrnnXcO67sWLVrsjdbissQMZgAAAAAAACDqtWrVak9aWlpB8Pbu3bvnfPrppzV+/fXXypK2Fm7v1KnT7uDYefPmVcrNzY3p0KHDrtq1ax+2IHGvXr1yRowYUXfevHmVw8lp+/btMatXr06sVatWXvv27XOD7z/77LN3Dho0SAsXLjzY3iWXXLLt4Ycfrt+qVatW55133vZTTz0157TTTtuVkZERsrgsSWecccau4G1nnXVWTmxsrP39998PyXXjxo2xjzzySJ1JkyZVW7t2beLevXsPmYC7fv36g2sf//DDD1UKCgrUuXPnXSkpKYf1baAff/yxSn5+vowxGjRoUEbw/Xl5eUaS/vjjj0rB97Vv3/6wsYgmFJgBAAAAAACAKJeenp4XantGRkaeJO3cufOQ6bd16tQ5LH779u2xklSrVq2QbdWvXz9kW0XZtm1bbHG5NWzY8LD2HnrooU01a9Y88Nprr6W/9dZbtd58881axhidcMIJOU899dTabt267Skqr0BxcXFKTU3N37Zt28H655YtW2I7dep03Lp16xLatGmz+8ILL9xavXr1A3FxccrOzo4dOXJkrX379h1c8qKwP+rWrbu/pH3NysqKk6SFCxdWDiyYB9u9e/dhK0rUrl07ZP9ECwrMAAAAAAAAQJTLysqKD7V9/fr18ZKUkpJyyIxkY8xhsWlpafmStHnz5pBtrV27Nl6SkpOTD5vdHEr16tXzJWnLli0h21u9enXI9m677batt91229YtW7bEfvfdd1XHjh2b+tFHH9Xs06fPsb/99tvC4LWZ165dG9+sWbNDisAHDhxQdnZ2bJUqVQ62PWLEiJrr1q1LGDhw4Ibg9aInTZpUZeTIkbUCtxX2x4YNGxJUgtTU1HxJuv766ze9/vrra0uKDxRqLKIJBWYAAIAysujse8s7haNGhzH9yzuFkBZ0e7i8UwAAAEep3377rfL27dtjgpfJmDJlSrIktW/f/rCZv8GOP/743EqVKhUsXry4clZWVmzgusaS9N133yVLUrt27Q62FRcXZyXfF+UFS0tLK2jQoMG+tWvXJi5YsCCxTZs2h6x//M033yRLUps2bULmVrNmzfx+/frt6Nev346CggJ99NFHNSdOnFj1mmuuyQ6MmzBhQtVmzZptC9z2zTffJOfn55vjjjvuYNtLly5NlKTLLrtse/BzTZ48OTl4W7du3XbHxMRoxowZVXfu3BlT3DIZhbG//PLLYe1UdK4UmPPqNws79tKpO0sOChCf+qdruUjSh8enlBzkd6fDtr3Eab876RdJunS+s/bz+offl05zcTpO8WvDP8bcPL4k6e61cx22381RvBNu5+L0mPESJ8ev03PPSduRcHJMOj0GnHJ6Pjnh9nXDKTdfa5xcw9zm5phWFOGOl5O+dPt4d3Idc/q+rSJw67h38/2JU06vM0fT9d0Jp7k75fbrthOXzq/iKN7JtcPpe043r3mSt657TvvGyTHjZtuSt95DuP0ZzgkvHe9OP6c4PZfUvmbJMTjMrl27Yu++++6MV1555eDs2alTp1b+/PPPq1etWjV/wIABhxVVg1WqVMmef/75295///2a//rXvzLefvvtNYX3/fbbb4lvvPFGrbi4OHvDDTccXMs5PT39gCStWbMm5Czf/v37bxk2bFi9gQMH1v/mm2+WxcX5ypEbNmyIe+qppzIk6YYbbjj4BXcff/xxSt++fXcGfiGg9Ncs6MqVKx9W5H3qqacyLr300h2FBfE9e/aY++67r54kXXnllQdzzczM3C9JEydOTO7cufPewu3Tpk1Leu655+oEt5uRkXHg3HPP3fbll19W//vf/17/nXfeWR34RX87duyIOXDggKlRo0Z+vXr1DvTp02frZ599VuOuu+6q+/jjj28I3offfvstMTY21rZo0aLEJTeiCTOYAQAAAAAAUGFl3v1Vx/LO4Ujo1KnTrvfee6/m7Nmzq3Tp0mXXxo0b47/66qvq1lozfPjwVdWrVy/2S+oKPfvss2unT59e9Z133qk1d+7cKqecckrO1q1b47766qu03bt3xz7++OOrAwukbdu2za1Vq1beuHHjql922WW2QYMG+40xuuGGG7Yee+yx+x966KFNEydOrPbdd9+ltmzZstVpp522Y8+ePTFfffVV2rZt2+JuueWWjWeeeebBL+m79tprmyQmJtpOnTrlNGzYcL+1Vr/88kvywoULK7dq1WpP3759c4Jzbtq06d5WrVq1Ouecc7bHx8fbb7/9NnXNmjWJp5566o5bb731YIH5pptu2vriiy/WeeCBBxpMmTIluWnTprnLli2r9P3331c788wzs7/66qu04LbfeOON1aecckrSmDFj0n/++efkU089dWdCQoJdtWpVwg8/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OHFicufOnfcWbp82bVrSc889V8dpe8ccc0xe586dc2bMmJH8n//8J33w4MEH3xx8/PHHKcHrL0tS//79sx988MF977zzTnrPnj1z+vXrd9iM4UmTJlXp0qXL3uTk5AJJqlGjxgFJWrlyZcj1oUPZu3evmTBhQtXzzjsvJybmr3m1+/btM9nZ2XGSVKVKlYJIckpMTLTnn3/+tvfff7/mv//974w33nhjTWHc1KlTK3/++edH7d9DUmAGAACQJJ0nabyknuWdCAAAAMqQMaZjeedQnm666aatL774Yp0HHnigwZQpU5KbNm2au2zZskrff/99tTPPPDP7q6++SnPa5osvvri6R48eLe6+++6G3377bbVWrVrtXblyZcI333yTdtppp2V/9913qYEF3sTERPvRRx8t6927d7PLLrvsmGHDhu1u1arVnsqVKxesW7cuYd68eZXXrl2buGrVqnmFBeYzzjgj595779X//d//1V+4cGFS4RIVTz755Iai8tq9e3fM+eeff2xGRsb+9u3b727QoMG+3NzcmKlTp6YsX768Us+ePbM7dOiQG2lOw4cPX/fjjz8mv/nmm7Xmzp1b+cQTT9y1cePG+K+++qp69+7dd0yePDnVaV9WBCyRAQAAcFCP8k4AAAAAKFOZmZl533333eLu3bvvmDVrVtW33nqr1rp16xKGDRu2+umnn14bSZsdO3bMnTJlyuLTTz89e+bMmVVff/31WmvWrEkcNWrUsq5du+6S/lqruVCXLl32zp079/e///3vG3NycmI//vjjGqNGjUpfsGBB5VatWu154YUXVtStW/fgFwR26NAh97nnnltRs2bNvFGjRtV66qmnMp566qmM4vJKTk4uuPfee9c2bdo0d/bs2VXefPPN2p999ln1qlWr5g8bNmz1V199tbw0OdWtW/fAtGnTFl988cVbly9fXumNN96o/dtvv1V+8sknVw0cOHBzJH1ZERhrrRvtutIoAADAkbFQ0v2SxpZ3IgAAAEejw79ZLoR58+atbNu27ZaQDUTRrGVr7ezyzqEs9enTp/GXX35Zfe7cuQvbtm27r+RHVAzjxo1LPu+8844N9WWKFcW8efNqtm3bNjN4O0tkAAAAHKa1pHfKOwkAAABEqKIVbb0mPz9f69ati2vYsOGBwO2ff/558tdff129adOmuUdTcfloR4EZAAAg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",
      "text/plain": [
       "<Figure size 1440x324 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#visualizing lowest ranked guide\n",
    "pegRNA_df_loc=195 #choosing which guide to display from the above dataframe\n",
    "h = pegg.pegrna_display(ranked_filtered, pegRNA_df_loc, records, index_list)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f968fad0",
   "metadata": {},
   "source": [
    "**In this example, it's pretty clear why the lowest ranked guide is so poor:**\n",
    "- It has only 1 base of homology overhang.\n",
    "- Its PBS has a 100% GC content.\n",
    "\n",
    "There's an **alternative visualization** tool that's more barebones and is built-in to PEGG. We can also use it to visualize the 3' extension of the top ranked and lowest ranked guide:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "fd45fc97",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CAGCTCCCCATACTCGCTGTTGTAAAACACCTGGCCTCCTCGGGCCCCCCGCTCAGGCCGCCGCCGCCTCCCTTGGGAGTCAGGGTGTGCCCTGGTCACA\n",
      "                         ||||||||||||||||||||||||.|||||||||||||||||                                 \n",
      "-------------------------AACACCTGGCCTCCTCGGGCCCCCAGCTCAGGCCGCCGCCGC---------------------------------\n",
      "  Score=82\n",
      "\n"
     ]
    }
   ],
   "source": [
    "#another form of visualization (of 3' extension only) for top ranked guide\n",
    "pegg.align_display(ranked_filtered[0:1], records, index_list)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "d6dcaa0c",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CAGCTCCCCATACTCGCTGTTGTAAAACACCTGGCCTCCTCGGGCCCCCCGCTCAGGCCGCCGCCGCCTCCCTTGGGAGTCAGGGTGTGCCCTGGTCACA\n",
      "                                                |.||||||||||||||||||                                \n",
      "------------------------------------------------CAGCTCAGGCCGCCGCCGCC--------------------------------\n",
      "  Score=38\n",
      "\n"
     ]
    }
   ],
   "source": [
    "#lowest ranked guide\n",
    "pegg.align_display(ranked_filtered[195:196], records, index_list)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "id": "a1ac6019",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CAGCTCCCCATACTCGCTGTTGTAAAACACCTGGCCTCCTCGGGCCCCCCGCTCAGGCCGCCGCCGCCTCCCTTGGGAGTCAGGGTGTGCCCTGGTCACA\n",
      "                         ||||||||||||||||||||||||.|||||||||||||||||                                 \n",
      "-------------------------AACACCTGGCCTCCTCGGGCCCCCAGCTCAGGCCGCCGCCGC---------------------------------\n",
      "  Score=82\n",
      "\n",
      "CAGCTCCCCATACTCGCTGTTGTAAAACACCTGGCCTCCTCGGGCCCCCCGCTCAGGCCGCCGCCGCCTCCCTTGGGAGTCAGGGTGTGCCCTGGTCACA\n",
      "                                    |||||||||||||.||||||||||||||||||||||||||||                      \n",
      "------------------------------------TCCTCGGGCCCCCAGCTCAGGCCGCCGCCGCCTCCCTTGGGA----------------------\n",
      "  Score=82\n",
      "\n",
      "CAGCTCCCCATACTCGCTGTTGTAAAACACCTGGCCTCCTCGGGCCCCCCGCTCAGGCCGCCGCCGCCTCCCTTGGGAGTCAGGGTGTGCCCTGGTCACA\n",
      "                          |||||||||||||||||||||||.||||||||||||||||||                                \n",
      "--------------------------ACACCTGGCCTCCTCGGGCCCCCAGCTCAGGCCGCCGCCGCC--------------------------------\n",
      "  Score=82\n",
      "\n",
      "CAGCTCCCCATACTCGCTGTTGTAAAACACCTGGCCTCCTCGGGCCCCCCGCTCAGGCCGCCGCCGCCTCCCTTGGGAGTCAGGGTGTGCCCTGGTCACA\n",
      "                                    |||||||||||||.||||||||||||||||||||||||||                        \n",
      "------------------------------------TCCTCGGGCCCCCAGCTCAGGCCGCCGCCGCCTCCCTTGG------------------------\n",
      "  Score=78\n",
      "\n",
      "CAGCTCCCCATACTCGCTGTTGTAAAACACCTGGCCTCCTCGGGCCCCCCGCTCAGGCCGCCGCCGCCTCCCTTGGGAGTCAGGGTGTGCCCTGGTCACA\n",
      "                                       ||||||||||.||||||||||||||||||||||||                          \n",
      "---------------------------------------TCGGGCCCCCAGCTCAGGCCGCCGCCGCCTCCCTT--------------------------\n",
      "  Score=68\n",
      "\n"
     ]
    }
   ],
   "source": [
    "#or we can look at the top 5:\n",
    "pegg.align_display(ranked_filtered[0:5], records, index_list)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4b4072fe",
   "metadata": {},
   "source": [
    "## Step 4: Oligo Design\n",
    "Now that we have our guide designs, we can generate the oligos for cloning these pegRNAs for downstream testing.\n",
    "The oligo_generator() provides 5' and 3' adapters with Esp3I and EcoRI sites for restriction cloning, but these can also be provided by the user. \n",
    "\n",
    "Additionally, users need to specify whether they want to append a ‘G’ nucleotide to the beginning of the protospacer. This is reccomended in the original Anzalone et al., 2019 prime editing paper.\n",
    "\n",
    "A unique feature of PEGG is the option to include a sensor region in the oligo. This sensor region is a synthetic version of the endogenous target site, providing the ability to measure a proxy of editing outcomes at the endogenous locus. This approach can be useful in the context of a library of pegRNAs, allowing for the measurement of pegRNA enrichment/depletion as well as a proxy of editing outcomes with a single NGS amplicon.\n",
    "\n",
    "\n",
    "For more specifics see the [Oligo Generation instructions in the quickstart guide](https://pegg.readthedocs.io/en/latest/quickstart.html#oligo-generation).\n",
    "\n",
    "In the below example, we **will include a sensor region and append a G to the beginning of the protospacers**:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "568c64a0",
   "metadata": {},
   "outputs": [],
   "source": [
    "oligos_w_sensor = pegg.oligo_generator(ranked_filtered, append_proto_G=True, sensor=True)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "37327dd5",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>mutant index</th>\n",
       "      <th>gene</th>\n",
       "      <th>chr</th>\n",
       "      <th>start</th>\n",
       "      <th>end</th>\n",
       "      <th>variant_type</th>\n",
       "      <th>ref_allele</th>\n",
       "      <th>mut_allele</th>\n",
       "      <th>PAM location</th>\n",
       "      <th>PAM strand</th>\n",
       "      <th>PAM</th>\n",
       "      <th>protospacer</th>\n",
       "      <th>PBS</th>\n",
       "      <th>PBS length</th>\n",
       "      <th>RTT</th>\n",
       "      <th>RTT length</th>\n",
       "      <th>PBS_RTT_5to3</th>\n",
       "      <th>distance mut to 5' RTT</th>\n",
       "      <th>distance to nick</th>\n",
       "      <th>target sequence</th>\n",
       "      <th>target length</th>\n",
       "      <th>MIT specificity</th>\n",
       "      <th>CFD efficiency percentile</th>\n",
       "      <th>contains terminator?</th>\n",
       "      <th>contains RE site?</th>\n",
       "      <th>last templated base C?</th>\n",
       "      <th>PBS GC content</th>\n",
       "      <th>composite score</th>\n",
       "      <th>target genomic edit</th>\n",
       "      <th>pegRNA_oligo</th>\n",
       "      <th>epegRNA_tevopreQ1_oligo</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>4</td>\n",
       "      <td>FLT4</td>\n",
       "      <td>chr5</td>\n",
       "      <td>180030313</td>\n",
       "      <td>180030313</td>\n",
       "      <td>SNP</td>\n",
       "      <td>C</td>\n",
       "      <td>A</td>\n",
       "      <td>180030303</td>\n",
       "      <td>+</td>\n",
       "      <td>CGG</td>\n",
       "      <td>TGTAAAACACCTGGCCTCCT</td>\n",
       "      <td>TTGTGGACCGGA</td>\n",
       "      <td>12</td>\n",
       "      <td>GGAGCCCGGGGGTCGAGTCCGGCGGCGGCG</td>\n",
       "      <td>30</td>\n",
       "      <td>GCGGCGGCGGCCTGAGCTGGGGGCCCGAGGAGGCCAGGTGTT</td>\n",
       "      <td>17</td>\n",
       "      <td>13</td>\n",
       "      <td>GCTGTTGTAAAACACCTGGCCTCCTCGGGCCCCCCGCTCAGGCCGC...</td>\n",
       "      <td>60</td>\n",
       "      <td>60</td>\n",
       "      <td>35</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>0.583333</td>\n",
       "      <td>2.950000</td>\n",
       "      <td>CAGCTCCCCATACTCGCTGTTGTAAAACACCTGGCCTCCTCGGGCC...</td>\n",
       "      <td>AGCGTACACGTCTCACACCGTGTAAAACACCTGGCCTCCTGTTTTA...</td>\n",
       "      <td>AGCGTACACGTCTCACACCGTGTAAAACACCTGGCCTCCTGTTTTA...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>4</td>\n",
       "      <td>FLT4</td>\n",
       "      <td>chr5</td>\n",
       "      <td>180030313</td>\n",
       "      <td>180030313</td>\n",
       "      <td>SNP</td>\n",
       "      <td>C</td>\n",
       "      <td>A</td>\n",
       "      <td>180030326</td>\n",
       "      <td>-</td>\n",
       "      <td>CGG</td>\n",
       "      <td>CTGACTCCCAAGGGAGGCGG</td>\n",
       "      <td>CCTCCCTTGGGA</td>\n",
       "      <td>12</td>\n",
       "      <td>TCCTCGGGCCCCCAGCTCAGGCCGCCGCCG</td>\n",
       "      <td>30</td>\n",
       "      <td>TCCTCGGGCCCCCAGCTCAGGCCGCCGCCGCCTCCCTTGGGA</td>\n",
       "      <td>14</td>\n",
       "      <td>16</td>\n",
       "      <td>ACCTGGCCTCCTCGGGCCCCCCGCTCAGGCCGCCGCCGCCTCCCTT...</td>\n",
       "      <td>60</td>\n",
       "      <td>71</td>\n",
       "      <td>63</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>0.666667</td>\n",
       "      <td>2.873333</td>\n",
       "      <td>CAGCTCCCCATACTCGCTGTTGTAAAACACCTGGCCTCCTCGGGCC...</td>\n",
       "      <td>AGCGTACACGTCTCACACCGCTGACTCCCAAGGGAGGCGGGTTTTA...</td>\n",
       "      <td>AGCGTACACGTCTCACACCGCTGACTCCCAAGGGAGGCGGGTTTTA...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>4</td>\n",
       "      <td>FLT4</td>\n",
       "      <td>chr5</td>\n",
       "      <td>180030313</td>\n",
       "      <td>180030313</td>\n",
       "      <td>SNP</td>\n",
       "      <td>C</td>\n",
       "      <td>A</td>\n",
       "      <td>180030304</td>\n",
       "      <td>+</td>\n",
       "      <td>GGG</td>\n",
       "      <td>GTAAAACACCTGGCCTCCTC</td>\n",
       "      <td>TGTGGACCGGAG</td>\n",
       "      <td>12</td>\n",
       "      <td>GAGCCCGGGGGTCGAGTCCGGCGGCGGCGG</td>\n",
       "      <td>30</td>\n",
       "      <td>GGCGGCGGCGGCCTGAGCTGGGGGCCCGAGGAGGCCAGGTGT</td>\n",
       "      <td>18</td>\n",
       "      <td>12</td>\n",
       "      <td>CTGTTGTAAAACACCTGGCCTCCTCGGGCCCCCCGCTCAGGCCGCC...</td>\n",
       "      <td>60</td>\n",
       "      <td>75</td>\n",
       "      <td>35</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>0.666667</td>\n",
       "      <td>2.766667</td>\n",
       "      <td>CAGCTCCCCATACTCGCTGTTGTAAAACACCTGGCCTCCTCGGGCC...</td>\n",
       "      <td>AGCGTACACGTCTCACACCGGTAAAACACCTGGCCTCCTCGTTTTA...</td>\n",
       "      <td>AGCGTACACGTCTCACACCGGTAAAACACCTGGCCTCCTCGTTTTA...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>FLT4</td>\n",
       "      <td>chr5</td>\n",
       "      <td>180030313</td>\n",
       "      <td>180030313</td>\n",
       "      <td>SNP</td>\n",
       "      <td>C</td>\n",
       "      <td>A</td>\n",
       "      <td>180030326</td>\n",
       "      <td>-</td>\n",
       "      <td>CGG</td>\n",
       "      <td>CTGACTCCCAAGGGAGGCGG</td>\n",
       "      <td>CCTCCCTTGG</td>\n",
       "      <td>10</td>\n",
       "      <td>TCCTCGGGCCCCCAGCTCAGGCCGCCGCCG</td>\n",
       "      <td>30</td>\n",
       "      <td>TCCTCGGGCCCCCAGCTCAGGCCGCCGCCGCCTCCCTTGG</td>\n",
       "      <td>14</td>\n",
       "      <td>16</td>\n",
       "      <td>ACCTGGCCTCCTCGGGCCCCCCGCTCAGGCCGCCGCCGCCTCCCTT...</td>\n",
       "      <td>60</td>\n",
       "      <td>71</td>\n",
       "      <td>63</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>0.700000</td>\n",
       "      <td>2.706667</td>\n",
       "      <td>CAGCTCCCCATACTCGCTGTTGTAAAACACCTGGCCTCCTCGGGCC...</td>\n",
       "      <td>AGCGTACACGTCTCACACCGCTGACTCCCAAGGGAGGCGGGTTTTA...</td>\n",
       "      <td>AGCGTACACGTCTCACACCGCTGACTCCCAAGGGAGGCGGGTTTTA...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>4</td>\n",
       "      <td>FLT4</td>\n",
       "      <td>chr5</td>\n",
       "      <td>180030313</td>\n",
       "      <td>180030313</td>\n",
       "      <td>SNP</td>\n",
       "      <td>C</td>\n",
       "      <td>A</td>\n",
       "      <td>180030329</td>\n",
       "      <td>-</td>\n",
       "      <td>CGG</td>\n",
       "      <td>ACCCTGACTCCCAAGGGAGG</td>\n",
       "      <td>CCCTT</td>\n",
       "      <td>5</td>\n",
       "      <td>TCGGGCCCCCAGCTCAGGCCGCCGCCGCCT</td>\n",
       "      <td>30</td>\n",
       "      <td>TCGGGCCCCCAGCTCAGGCCGCCGCCGCCTCCCTT</td>\n",
       "      <td>11</td>\n",
       "      <td>19</td>\n",
       "      <td>TGGCCTCCTCGGGCCCCCCGCTCAGGCCGCCGCCGCCTCCCTTGGG...</td>\n",
       "      <td>60</td>\n",
       "      <td>55</td>\n",
       "      <td>63</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>0.600000</td>\n",
       "      <td>2.646667</td>\n",
       "      <td>CAGCTCCCCATACTCGCTGTTGTAAAACACCTGGCCTCCTCGGGCC...</td>\n",
       "      <td>AGCGTACACGTCTCACACCGACCCTGACTCCCAAGGGAGGGTTTTA...</td>\n",
       "      <td>AGCGTACACGTCTCACACCGACCCTGACTCCCAAGGGAGGGTTTTA...</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   mutant index  gene   chr      start        end variant_type ref_allele  \\\n",
       "0             4  FLT4  chr5  180030313  180030313          SNP          C   \n",
       "1             4  FLT4  chr5  180030313  180030313          SNP          C   \n",
       "2             4  FLT4  chr5  180030313  180030313          SNP          C   \n",
       "3             4  FLT4  chr5  180030313  180030313          SNP          C   \n",
       "4             4  FLT4  chr5  180030313  180030313          SNP          C   \n",
       "\n",
       "  mut_allele  PAM location PAM strand  PAM           protospacer  \\\n",
       "0          A     180030303          +  CGG  TGTAAAACACCTGGCCTCCT   \n",
       "1          A     180030326          -  CGG  CTGACTCCCAAGGGAGGCGG   \n",
       "2          A     180030304          +  GGG  GTAAAACACCTGGCCTCCTC   \n",
       "3          A     180030326          -  CGG  CTGACTCCCAAGGGAGGCGG   \n",
       "4          A     180030329          -  CGG  ACCCTGACTCCCAAGGGAGG   \n",
       "\n",
       "            PBS  PBS length                             RTT  RTT length  \\\n",
       "0  TTGTGGACCGGA          12  GGAGCCCGGGGGTCGAGTCCGGCGGCGGCG          30   \n",
       "1  CCTCCCTTGGGA          12  TCCTCGGGCCCCCAGCTCAGGCCGCCGCCG          30   \n",
       "2  TGTGGACCGGAG          12  GAGCCCGGGGGTCGAGTCCGGCGGCGGCGG          30   \n",
       "3    CCTCCCTTGG          10  TCCTCGGGCCCCCAGCTCAGGCCGCCGCCG          30   \n",
       "4         CCCTT           5  TCGGGCCCCCAGCTCAGGCCGCCGCCGCCT          30   \n",
       "\n",
       "                                 PBS_RTT_5to3  distance mut to 5' RTT  \\\n",
       "0  GCGGCGGCGGCCTGAGCTGGGGGCCCGAGGAGGCCAGGTGTT                      17   \n",
       "1  TCCTCGGGCCCCCAGCTCAGGCCGCCGCCGCCTCCCTTGGGA                      14   \n",
       "2  GGCGGCGGCGGCCTGAGCTGGGGGCCCGAGGAGGCCAGGTGT                      18   \n",
       "3    TCCTCGGGCCCCCAGCTCAGGCCGCCGCCGCCTCCCTTGG                      14   \n",
       "4         TCGGGCCCCCAGCTCAGGCCGCCGCCGCCTCCCTT                      11   \n",
       "\n",
       "   distance to nick                                    target sequence  \\\n",
       "0                13  GCTGTTGTAAAACACCTGGCCTCCTCGGGCCCCCCGCTCAGGCCGC...   \n",
       "1                16  ACCTGGCCTCCTCGGGCCCCCCGCTCAGGCCGCCGCCGCCTCCCTT...   \n",
       "2                12  CTGTTGTAAAACACCTGGCCTCCTCGGGCCCCCCGCTCAGGCCGCC...   \n",
       "3                16  ACCTGGCCTCCTCGGGCCCCCCGCTCAGGCCGCCGCCGCCTCCCTT...   \n",
       "4                19  TGGCCTCCTCGGGCCCCCCGCTCAGGCCGCCGCCGCCTCCCTTGGG...   \n",
       "\n",
       "   target length  MIT specificity  CFD efficiency percentile  \\\n",
       "0             60               60                         35   \n",
       "1             60               71                         63   \n",
       "2             60               75                         35   \n",
       "3             60               71                         63   \n",
       "4             60               55                         63   \n",
       "\n",
       "  contains terminator? contains RE site? last templated base C?  \\\n",
       "0                   no                no                     no   \n",
       "1                   no                no                     no   \n",
       "2                   no                no                     no   \n",
       "3                   no                no                     no   \n",
       "4                   no                no                     no   \n",
       "\n",
       "   PBS GC content  composite score  \\\n",
       "0        0.583333         2.950000   \n",
       "1        0.666667         2.873333   \n",
       "2        0.666667         2.766667   \n",
       "3        0.700000         2.706667   \n",
       "4        0.600000         2.646667   \n",
       "\n",
       "                                 target genomic edit  \\\n",
       "0  CAGCTCCCCATACTCGCTGTTGTAAAACACCTGGCCTCCTCGGGCC...   \n",
       "1  CAGCTCCCCATACTCGCTGTTGTAAAACACCTGGCCTCCTCGGGCC...   \n",
       "2  CAGCTCCCCATACTCGCTGTTGTAAAACACCTGGCCTCCTCGGGCC...   \n",
       "3  CAGCTCCCCATACTCGCTGTTGTAAAACACCTGGCCTCCTCGGGCC...   \n",
       "4  CAGCTCCCCATACTCGCTGTTGTAAAACACCTGGCCTCCTCGGGCC...   \n",
       "\n",
       "                                        pegRNA_oligo  \\\n",
       "0  AGCGTACACGTCTCACACCGTGTAAAACACCTGGCCTCCTGTTTTA...   \n",
       "1  AGCGTACACGTCTCACACCGCTGACTCCCAAGGGAGGCGGGTTTTA...   \n",
       "2  AGCGTACACGTCTCACACCGGTAAAACACCTGGCCTCCTCGTTTTA...   \n",
       "3  AGCGTACACGTCTCACACCGCTGACTCCCAAGGGAGGCGGGTTTTA...   \n",
       "4  AGCGTACACGTCTCACACCGACCCTGACTCCCAAGGGAGGGTTTTA...   \n",
       "\n",
       "                             epegRNA_tevopreQ1_oligo  \n",
       "0  AGCGTACACGTCTCACACCGTGTAAAACACCTGGCCTCCTGTTTTA...  \n",
       "1  AGCGTACACGTCTCACACCGCTGACTCCCAAGGGAGGCGGGTTTTA...  \n",
       "2  AGCGTACACGTCTCACACCGGTAAAACACCTGGCCTCCTCGTTTTA...  \n",
       "3  AGCGTACACGTCTCACACCGCTGACTCCCAAGGGAGGCGGGTTTTA...  \n",
       "4  AGCGTACACGTCTCACACCGACCCTGACTCCCAAGGGAGGGTTTTA...  "
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "oligos_w_sensor.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b3effcf0",
   "metadata": {},
   "source": [
    "Scrolling all the way to the right in this dataframe reveals our two columns that correspond with the oligo design. The first column \"pegRNA_oligo\" is the traditional pegRNA (here with an additional sensor region), while \"epegRNA_tevopreQ1_oligo\" is an epegRNA, which contains a structural motif at the end of the 3' extension, which prevents degradation of the pegRNA.\n",
    "\n",
    "From here, we can simply export this entire dataframe as a csv and use these columns for ordering oligos, or we can create a separate dataframe with just our oligo sequence. Here I'm showing how you could export just the epegRNA oligo sequences:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "5e78db51",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>guide_id</th>\n",
       "      <th>epeg_seq</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>epeg_0</td>\n",
       "      <td>AGCGTACACGTCTCACACCGTGTAAAACACCTGGCCTCCTGTTTTA...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>epeg_1</td>\n",
       "      <td>AGCGTACACGTCTCACACCGCTGACTCCCAAGGGAGGCGGGTTTTA...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>epeg_2</td>\n",
       "      <td>AGCGTACACGTCTCACACCGGTAAAACACCTGGCCTCCTCGTTTTA...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>epeg_3</td>\n",
       "      <td>AGCGTACACGTCTCACACCGCTGACTCCCAAGGGAGGCGGGTTTTA...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>epeg_4</td>\n",
       "      <td>AGCGTACACGTCTCACACCGACCCTGACTCCCAAGGGAGGGTTTTA...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>191</th>\n",
       "      <td>epeg_191</td>\n",
       "      <td>AGCGTACACGTCTCACACCGGGAGGCGGCGGCGGCCTGAGGTTTTA...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>192</th>\n",
       "      <td>epeg_192</td>\n",
       "      <td>AGCGTACACGTCTCACACCGACTCCCAAGGGAGGCGGCGGGTTTTA...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>193</th>\n",
       "      <td>epeg_193</td>\n",
       "      <td>AGCGTACACGTCTCACACCGGGAGGCGGCGGCGGCCTGAGGTTTTA...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>194</th>\n",
       "      <td>epeg_194</td>\n",
       "      <td>AGCGTACACGTCTCACACCGGGAGGCGGCGGCGGCCTGAGGTTTTA...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>195</th>\n",
       "      <td>epeg_195</td>\n",
       "      <td>AGCGTACACGTCTCACACCGACTCCCAAGGGAGGCGGCGGGTTTTA...</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>196 rows × 2 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "     guide_id                                           epeg_seq\n",
       "0      epeg_0  AGCGTACACGTCTCACACCGTGTAAAACACCTGGCCTCCTGTTTTA...\n",
       "1      epeg_1  AGCGTACACGTCTCACACCGCTGACTCCCAAGGGAGGCGGGTTTTA...\n",
       "2      epeg_2  AGCGTACACGTCTCACACCGGTAAAACACCTGGCCTCCTCGTTTTA...\n",
       "3      epeg_3  AGCGTACACGTCTCACACCGCTGACTCCCAAGGGAGGCGGGTTTTA...\n",
       "4      epeg_4  AGCGTACACGTCTCACACCGACCCTGACTCCCAAGGGAGGGTTTTA...\n",
       "..        ...                                                ...\n",
       "191  epeg_191  AGCGTACACGTCTCACACCGGGAGGCGGCGGCGGCCTGAGGTTTTA...\n",
       "192  epeg_192  AGCGTACACGTCTCACACCGACTCCCAAGGGAGGCGGCGGGTTTTA...\n",
       "193  epeg_193  AGCGTACACGTCTCACACCGGGAGGCGGCGGCGGCCTGAGGTTTTA...\n",
       "194  epeg_194  AGCGTACACGTCTCACACCGGGAGGCGGCGGCGGCCTGAGGTTTTA...\n",
       "195  epeg_195  AGCGTACACGTCTCACACCGACTCCCAAGGGAGGCGGCGGGTTTTA...\n",
       "\n",
       "[196 rows x 2 columns]"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ids = ['epeg_' + str(i) for i in range(len(oligos_w_sensor))]\n",
    "data = {'guide_id': ids, 'epeg_seq':list(oligos_w_sensor[\"epegRNA_tevopreQ1_oligo\"])}\n",
    "epeg_oligos = pd.DataFrame(data = data)\n",
    "epeg_oligos\n",
    "#epeg_oligos.to_csv() to export this dataframe to a csv file...\n",
    "                                                                 "
   ]
  },
  {
   "cell_type": "markdown",
   "id": "93068196",
   "metadata": {},
   "source": [
    "# Case Study 2: Rapid Library Design\n",
    "\n",
    "**Motivation**: How can we rapidly design and construct complex libraries of pegRNAs to engineer all disease-associated mutations in genes of interest?\n",
    "\n",
    "The most powerful use-case for PEGG is in rapidly designing large libraries of pegRNA for multiplexed mutation engineering. \n",
    "\n",
    "PEGG includes automated library generation and visualization functions. These provide the ability to automatically select all of the mutations associated with a particular gene, generate pegRNAs for these mutations, and generate neutral pegRNAs that introduce silent mutations as internal controls.\n",
    "\n",
    "The code below shows how to generate the neutral/silent substitutions based on inputting information about a gene as well as providing a list of the coding sequence locations of the relevant transcript. This list is generated manually in the example below.\n",
    "\n",
    "Here, we're generating all of the possible neutral codon substitutions for TP53:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 118,
   "id": "d3b39881",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Hugo_Symbol</th>\n",
       "      <th>Chromosome</th>\n",
       "      <th>Start_Position</th>\n",
       "      <th>End_Position</th>\n",
       "      <th>Variant_Type</th>\n",
       "      <th>Reference_Allele</th>\n",
       "      <th>Tumor_Seq_Allele2</th>\n",
       "      <th>codon</th>\n",
       "      <th>ref_aa</th>\n",
       "      <th>mut_aa</th>\n",
       "      <th>classification</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>TP53</td>\n",
       "      <td>17</td>\n",
       "      <td>7579907</td>\n",
       "      <td>7579909</td>\n",
       "      <td>ONP</td>\n",
       "      <td>CTC</td>\n",
       "      <td>TTC</td>\n",
       "      <td>2</td>\n",
       "      <td>E</td>\n",
       "      <td>E</td>\n",
       "      <td>neutral</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>TP53</td>\n",
       "      <td>17</td>\n",
       "      <td>7579904</td>\n",
       "      <td>7579906</td>\n",
       "      <td>ONP</td>\n",
       "      <td>CTC</td>\n",
       "      <td>TTC</td>\n",
       "      <td>3</td>\n",
       "      <td>E</td>\n",
       "      <td>E</td>\n",
       "      <td>neutral</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>TP53</td>\n",
       "      <td>17</td>\n",
       "      <td>7579901</td>\n",
       "      <td>7579903</td>\n",
       "      <td>ONP</td>\n",
       "      <td>CGG</td>\n",
       "      <td>TGG</td>\n",
       "      <td>4</td>\n",
       "      <td>P</td>\n",
       "      <td>P</td>\n",
       "      <td>neutral</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>TP53</td>\n",
       "      <td>17</td>\n",
       "      <td>7579898</td>\n",
       "      <td>7579900</td>\n",
       "      <td>ONP</td>\n",
       "      <td>CTG</td>\n",
       "      <td>TTG</td>\n",
       "      <td>5</td>\n",
       "      <td>Q</td>\n",
       "      <td>Q</td>\n",
       "      <td>neutral</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>TP53</td>\n",
       "      <td>17</td>\n",
       "      <td>7579895</td>\n",
       "      <td>7579897</td>\n",
       "      <td>ONP</td>\n",
       "      <td>TGA</td>\n",
       "      <td>ACT</td>\n",
       "      <td>6</td>\n",
       "      <td>S</td>\n",
       "      <td>S</td>\n",
       "      <td>neutral</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>372</th>\n",
       "      <td>TP53</td>\n",
       "      <td>17</td>\n",
       "      <td>7572942</td>\n",
       "      <td>7572944</td>\n",
       "      <td>ONP</td>\n",
       "      <td>CCC</td>\n",
       "      <td>TCC</td>\n",
       "      <td>389</td>\n",
       "      <td>G</td>\n",
       "      <td>G</td>\n",
       "      <td>neutral</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>373</th>\n",
       "      <td>TP53</td>\n",
       "      <td>17</td>\n",
       "      <td>7572939</td>\n",
       "      <td>7572941</td>\n",
       "      <td>ONP</td>\n",
       "      <td>AGG</td>\n",
       "      <td>TGG</td>\n",
       "      <td>390</td>\n",
       "      <td>P</td>\n",
       "      <td>P</td>\n",
       "      <td>neutral</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>374</th>\n",
       "      <td>TP53</td>\n",
       "      <td>17</td>\n",
       "      <td>7572936</td>\n",
       "      <td>7572938</td>\n",
       "      <td>ONP</td>\n",
       "      <td>GTC</td>\n",
       "      <td>ATC</td>\n",
       "      <td>391</td>\n",
       "      <td>D</td>\n",
       "      <td>D</td>\n",
       "      <td>neutral</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>375</th>\n",
       "      <td>TP53</td>\n",
       "      <td>17</td>\n",
       "      <td>7572933</td>\n",
       "      <td>7572935</td>\n",
       "      <td>ONP</td>\n",
       "      <td>TGA</td>\n",
       "      <td>ACT</td>\n",
       "      <td>392</td>\n",
       "      <td>S</td>\n",
       "      <td>S</td>\n",
       "      <td>neutral</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>376</th>\n",
       "      <td>TP53</td>\n",
       "      <td>17</td>\n",
       "      <td>7572930</td>\n",
       "      <td>7572932</td>\n",
       "      <td>ONP</td>\n",
       "      <td>GTC</td>\n",
       "      <td>ATC</td>\n",
       "      <td>393</td>\n",
       "      <td>D</td>\n",
       "      <td>D</td>\n",
       "      <td>neutral</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>377 rows × 11 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "    Hugo_Symbol  Chromosome  Start_Position  End_Position Variant_Type  \\\n",
       "0          TP53          17         7579907       7579909          ONP   \n",
       "1          TP53          17         7579904       7579906          ONP   \n",
       "2          TP53          17         7579901       7579903          ONP   \n",
       "3          TP53          17         7579898       7579900          ONP   \n",
       "4          TP53          17         7579895       7579897          ONP   \n",
       "..          ...         ...             ...           ...          ...   \n",
       "372        TP53          17         7572942       7572944          ONP   \n",
       "373        TP53          17         7572939       7572941          ONP   \n",
       "374        TP53          17         7572936       7572938          ONP   \n",
       "375        TP53          17         7572933       7572935          ONP   \n",
       "376        TP53          17         7572930       7572932          ONP   \n",
       "\n",
       "    Reference_Allele Tumor_Seq_Allele2  codon ref_aa mut_aa classification  \n",
       "0                CTC               TTC      2      E      E        neutral  \n",
       "1                CTC               TTC      3      E      E        neutral  \n",
       "2                CGG               TGG      4      P      P        neutral  \n",
       "3                CTG               TTG      5      Q      Q        neutral  \n",
       "4                TGA               ACT      6      S      S        neutral  \n",
       "..               ...               ...    ...    ...    ...            ...  \n",
       "372              CCC               TCC    389      G      G        neutral  \n",
       "373              AGG               TGG    390      P      P        neutral  \n",
       "374              GTC               ATC    391      D      D        neutral  \n",
       "375              TGA               ACT    392      S      S        neutral  \n",
       "376              GTC               ATC    393      D      D        neutral  \n",
       "\n",
       "[377 rows x 11 columns]"
      ]
     },
     "execution_count": 118,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#testing automated library generation functions\n",
    "\n",
    "gene_name='TP53'\n",
    "strand = '-'\n",
    "chrom='chr17'\n",
    "#listing CDS of transcript ordered by +end\n",
    "start_end_cds = [[7572930, 7573008],\n",
    " [7573927, 7574033],\n",
    " [7576853, 7576926],\n",
    " [7577019, 7577155],\n",
    " [7577499, 7577608],\n",
    " [7578177, 7578289],\n",
    " [7578371, 7578554],\n",
    " [7579312, 7579590],\n",
    " [7579700, 7579721],\n",
    " [7579839, 7579912]]\n",
    "neutral_p53 = pegg.neutral_substitutions(gene_name, chrom, strand, start_end_cds, records, index_list)\n",
    "neutral_p53"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e7ebf09e",
   "metadata": {},
   "source": [
    "If you instead wanted to generate the start_end_cds using existing genome annotation files, this can be done by generating a genome anotation database (.db) file and then using this to access transcript information. This is outlined nicely at the following link: https://blog.liang2.tw/posts/2018/06/gene-annotation-using-gffutils/\n",
    "\n",
    "Importantly, you still need to define the precise transcript ID that correspond with the gene isoform you are targeting, as is shown in the code below, which assumes that the .db file has been generated:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "id": "e4439881",
   "metadata": {},
   "outputs": [],
   "source": [
    "#import gffutils\n",
    "\n",
    "#file = '/Users/samgould/Desktop/FSR Lab/reference files/gencode_v19.db'\n",
    "#db = gffutils.FeatureDB(file)\n",
    "\n",
    "#tx = 'ENST00000269305.4'\n",
    "#cds = list(db.children(tx, order_by='+end', featuretype=['CDS']))\n",
    "\n",
    "#start_end_cds = [[i.start, i.end] for i in cds]\n",
    "#start_end_cds"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d7482a96",
   "metadata": {},
   "source": [
    "We actually don't need to explicitly generate the . If we wanted to, for example, generate a library of pegRNAs targeting all of the mutations in TP53 in our MSK IMPACT dataset, we could just run the following code, where we specify what fraction of the pegRNAs we want to be silent substitutions to act as internal controls:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 119,
   "id": "c3eed355",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Hugo_Symbol</th>\n",
       "      <th>Chromosome</th>\n",
       "      <th>Start_Position</th>\n",
       "      <th>End_Position</th>\n",
       "      <th>Variant_Type</th>\n",
       "      <th>Reference_Allele</th>\n",
       "      <th>Tumor_Seq_Allele2</th>\n",
       "      <th>codon</th>\n",
       "      <th>ref_aa</th>\n",
       "      <th>mut_aa</th>\n",
       "      <th>classification</th>\n",
       "      <th>Entrez_Gene_Id</th>\n",
       "      <th>Center</th>\n",
       "      <th>NCBI_Build</th>\n",
       "      <th>Strand</th>\n",
       "      <th>Consequence</th>\n",
       "      <th>Variant_Classification</th>\n",
       "      <th>Tumor_Seq_Allele1</th>\n",
       "      <th>dbSNP_RS</th>\n",
       "      <th>dbSNP_Val_Status</th>\n",
       "      <th>Tumor_Sample_Barcode</th>\n",
       "      <th>Matched_Norm_Sample_Barcode</th>\n",
       "      <th>Match_Norm_Seq_Allele1</th>\n",
       "      <th>Match_Norm_Seq_Allele2</th>\n",
       "      <th>Tumor_Validation_Allele1</th>\n",
       "      <th>Tumor_Validation_Allele2</th>\n",
       "      <th>Match_Norm_Validation_Allele1</th>\n",
       "      <th>Match_Norm_Validation_Allele2</th>\n",
       "      <th>Verification_Status</th>\n",
       "      <th>Validation_Status</th>\n",
       "      <th>Mutation_Status</th>\n",
       "      <th>Sequencing_Phase</th>\n",
       "      <th>Sequence_Source</th>\n",
       "      <th>Validation_Method</th>\n",
       "      <th>Score</th>\n",
       "      <th>BAM_File</th>\n",
       "      <th>Sequencer</th>\n",
       "      <th>t_ref_count</th>\n",
       "      <th>t_alt_count</th>\n",
       "      <th>n_ref_count</th>\n",
       "      <th>n_alt_count</th>\n",
       "      <th>HGVSc</th>\n",
       "      <th>HGVSp</th>\n",
       "      <th>HGVSp_Short</th>\n",
       "      <th>Transcript_ID</th>\n",
       "      <th>RefSeq</th>\n",
       "      <th>Protein_position</th>\n",
       "      <th>Codons</th>\n",
       "      <th>Hotspot</th>\n",
       "      <th>cDNA_change</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>TP53</td>\n",
       "      <td>17</td>\n",
       "      <td>7579907</td>\n",
       "      <td>7579909</td>\n",
       "      <td>ONP</td>\n",
       "      <td>CTC</td>\n",
       "      <td>TTC</td>\n",
       "      <td>2.0</td>\n",
       "      <td>E</td>\n",
       "      <td>E</td>\n",
       "      <td>neutral</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>TP53</td>\n",
       "      <td>17</td>\n",
       "      <td>7579892</td>\n",
       "      <td>7579894</td>\n",
       "      <td>ONP</td>\n",
       "      <td>ATC</td>\n",
       "      <td>GTC</td>\n",
       "      <td>7.0</td>\n",
       "      <td>D</td>\n",
       "      <td>D</td>\n",
       "      <td>neutral</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>TP53</td>\n",
       "      <td>17</td>\n",
       "      <td>7579877</td>\n",
       "      <td>7579879</td>\n",
       "      <td>ONP</td>\n",
       "      <td>GGG</td>\n",
       "      <td>TGG</td>\n",
       "      <td>12.0</td>\n",
       "      <td>P</td>\n",
       "      <td>P</td>\n",
       "      <td>neutral</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>TP53</td>\n",
       "      <td>17</td>\n",
       "      <td>7579862</td>\n",
       "      <td>7579864</td>\n",
       "      <td>ONP</td>\n",
       "      <td>TTC</td>\n",
       "      <td>CTC</td>\n",
       "      <td>17.0</td>\n",
       "      <td>E</td>\n",
       "      <td>E</td>\n",
       "      <td>neutral</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>TP53</td>\n",
       "      <td>17</td>\n",
       "      <td>7579847</td>\n",
       "      <td>7579849</td>\n",
       "      <td>ONP</td>\n",
       "      <td>TAG</td>\n",
       "      <td>TAA</td>\n",
       "      <td>22.0</td>\n",
       "      <td>L</td>\n",
       "      <td>L</td>\n",
       "      <td>neutral</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1385</th>\n",
       "      <td>TP53</td>\n",
       "      <td>17</td>\n",
       "      <td>7577557</td>\n",
       "      <td>7577564</td>\n",
       "      <td>DEL</td>\n",
       "      <td>AGGAACTG</td>\n",
       "      <td>-</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>GRCh37</td>\n",
       "      <td>+</td>\n",
       "      <td>frameshift_variant</td>\n",
       "      <td>Frame_Shift_Del</td>\n",
       "      <td>AGGAACTG</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>P-0009547-T01-IM5</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>424.0</td>\n",
       "      <td>466.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>ENST00000269305.4:c.717_724del</td>\n",
       "      <td>p.Asn239LysfsTer22</td>\n",
       "      <td>p.N239Kfs*22</td>\n",
       "      <td>ENST00000269305</td>\n",
       "      <td>NM_001126112.2</td>\n",
       "      <td>239.0</td>\n",
       "      <td>aaCAGTTCCTgc/aagc</td>\n",
       "      <td>0.0</td>\n",
       "      <td>c.717_724delCAGTTCCT</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1386</th>\n",
       "      <td>TP53</td>\n",
       "      <td>17</td>\n",
       "      <td>7578418</td>\n",
       "      <td>7578418</td>\n",
       "      <td>SNP</td>\n",
       "      <td>T</td>\n",
       "      <td>C</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>GRCh37</td>\n",
       "      <td>+</td>\n",
       "      <td>missense_variant</td>\n",
       "      <td>Missense_Mutation</td>\n",
       "      <td>T</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>P-0010676-T01-IM5</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>112.0</td>\n",
       "      <td>228.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>ENST00000269305.4:c.512A&gt;G</td>\n",
       "      <td>p.Glu171Gly</td>\n",
       "      <td>p.E171G</td>\n",
       "      <td>ENST00000269305</td>\n",
       "      <td>NM_001126112.2</td>\n",
       "      <td>171.0</td>\n",
       "      <td>gAg/gGg</td>\n",
       "      <td>0.0</td>\n",
       "      <td>c.512A&gt;G</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1387</th>\n",
       "      <td>TP53</td>\n",
       "      <td>17</td>\n",
       "      <td>7578527</td>\n",
       "      <td>7578527</td>\n",
       "      <td>SNP</td>\n",
       "      <td>A</td>\n",
       "      <td>T</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>GRCh37</td>\n",
       "      <td>+</td>\n",
       "      <td>missense_variant</td>\n",
       "      <td>Missense_Mutation</td>\n",
       "      <td>A</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>P-0011077-T01-IM5</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>372.0</td>\n",
       "      <td>193.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>ENST00000269305.4:c.403T&gt;A</td>\n",
       "      <td>p.Cys135Ser</td>\n",
       "      <td>p.C135S</td>\n",
       "      <td>ENST00000269305</td>\n",
       "      <td>NM_001126112.2</td>\n",
       "      <td>135.0</td>\n",
       "      <td>Tgc/Agc</td>\n",
       "      <td>0.0</td>\n",
       "      <td>c.403T&gt;A</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1388</th>\n",
       "      <td>TP53</td>\n",
       "      <td>17</td>\n",
       "      <td>7579486</td>\n",
       "      <td>7579486</td>\n",
       "      <td>DEL</td>\n",
       "      <td>T</td>\n",
       "      <td>-</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>GRCh37</td>\n",
       "      <td>+</td>\n",
       "      <td>frameshift_variant</td>\n",
       "      <td>Frame_Shift_Del</td>\n",
       "      <td>T</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>P-0011087-T01-IM5</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>484.0</td>\n",
       "      <td>229.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>ENST00000269305.4:c.201del</td>\n",
       "      <td>p.Glu68ArgfsTer55</td>\n",
       "      <td>p.E68Rfs*55</td>\n",
       "      <td>ENST00000269305</td>\n",
       "      <td>NM_001126112.2</td>\n",
       "      <td>67.0</td>\n",
       "      <td>ccA/cc</td>\n",
       "      <td>0.0</td>\n",
       "      <td>c.201delA</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1389</th>\n",
       "      <td>TP53</td>\n",
       "      <td>17</td>\n",
       "      <td>7577579</td>\n",
       "      <td>7577581</td>\n",
       "      <td>DEL</td>\n",
       "      <td>GTA</td>\n",
       "      <td>-</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>GRCh37</td>\n",
       "      <td>+</td>\n",
       "      <td>inframe_deletion</td>\n",
       "      <td>In_Frame_Del</td>\n",
       "      <td>GTA</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>P-0012072-T01-IM5</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>664.0</td>\n",
       "      <td>334.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>ENST00000269305.4:c.700_702del</td>\n",
       "      <td>p.Tyr234del</td>\n",
       "      <td>p.Y234del</td>\n",
       "      <td>ENST00000269305</td>\n",
       "      <td>NM_001126112.2</td>\n",
       "      <td>234.0</td>\n",
       "      <td>TAC/-</td>\n",
       "      <td>0.0</td>\n",
       "      <td>c.700_702delTAC</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>1390 rows × 50 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "     Hugo_Symbol Chromosome  Start_Position  End_Position Variant_Type  \\\n",
       "0           TP53         17         7579907       7579909          ONP   \n",
       "1           TP53         17         7579892       7579894          ONP   \n",
       "2           TP53         17         7579877       7579879          ONP   \n",
       "3           TP53         17         7579862       7579864          ONP   \n",
       "4           TP53         17         7579847       7579849          ONP   \n",
       "...          ...        ...             ...           ...          ...   \n",
       "1385        TP53         17         7577557       7577564          DEL   \n",
       "1386        TP53         17         7578418       7578418          SNP   \n",
       "1387        TP53         17         7578527       7578527          SNP   \n",
       "1388        TP53         17         7579486       7579486          DEL   \n",
       "1389        TP53         17         7577579       7577581          DEL   \n",
       "\n",
       "     Reference_Allele Tumor_Seq_Allele2  codon ref_aa mut_aa classification  \\\n",
       "0                 CTC               TTC    2.0      E      E        neutral   \n",
       "1                 ATC               GTC    7.0      D      D        neutral   \n",
       "2                 GGG               TGG   12.0      P      P        neutral   \n",
       "3                 TTC               CTC   17.0      E      E        neutral   \n",
       "4                 TAG               TAA   22.0      L      L        neutral   \n",
       "...               ...               ...    ...    ...    ...            ...   \n",
       "1385         AGGAACTG                 -    NaN    NaN    NaN            NaN   \n",
       "1386                T                 C    NaN    NaN    NaN            NaN   \n",
       "1387                A                 T    NaN    NaN    NaN            NaN   \n",
       "1388                T                 -    NaN    NaN    NaN            NaN   \n",
       "1389              GTA                 -    NaN    NaN    NaN            NaN   \n",
       "\n",
       "      Entrez_Gene_Id  Center NCBI_Build Strand         Consequence  \\\n",
       "0                NaN     NaN        NaN    NaN                 NaN   \n",
       "1                NaN     NaN        NaN    NaN                 NaN   \n",
       "2                NaN     NaN        NaN    NaN                 NaN   \n",
       "3                NaN     NaN        NaN    NaN                 NaN   \n",
       "4                NaN     NaN        NaN    NaN                 NaN   \n",
       "...              ...     ...        ...    ...                 ...   \n",
       "1385             NaN     NaN     GRCh37      +  frameshift_variant   \n",
       "1386             NaN     NaN     GRCh37      +    missense_variant   \n",
       "1387             NaN     NaN     GRCh37      +    missense_variant   \n",
       "1388             NaN     NaN     GRCh37      +  frameshift_variant   \n",
       "1389             NaN     NaN     GRCh37      +    inframe_deletion   \n",
       "\n",
       "     Variant_Classification Tumor_Seq_Allele1  dbSNP_RS  dbSNP_Val_Status  \\\n",
       "0                       NaN               NaN       NaN               NaN   \n",
       "1                       NaN               NaN       NaN               NaN   \n",
       "2                       NaN               NaN       NaN               NaN   \n",
       "3                       NaN               NaN       NaN               NaN   \n",
       "4                       NaN               NaN       NaN               NaN   \n",
       "...                     ...               ...       ...               ...   \n",
       "1385        Frame_Shift_Del          AGGAACTG       NaN               NaN   \n",
       "1386      Missense_Mutation                 T       NaN               NaN   \n",
       "1387      Missense_Mutation                 A       NaN               NaN   \n",
       "1388        Frame_Shift_Del                 T       NaN               NaN   \n",
       "1389           In_Frame_Del               GTA       NaN               NaN   \n",
       "\n",
       "     Tumor_Sample_Barcode  Matched_Norm_Sample_Barcode  \\\n",
       "0                     NaN                          NaN   \n",
       "1                     NaN                          NaN   \n",
       "2                     NaN                          NaN   \n",
       "3                     NaN                          NaN   \n",
       "4                     NaN                          NaN   \n",
       "...                   ...                          ...   \n",
       "1385    P-0009547-T01-IM5                          NaN   \n",
       "1386    P-0010676-T01-IM5                          NaN   \n",
       "1387    P-0011077-T01-IM5                          NaN   \n",
       "1388    P-0011087-T01-IM5                          NaN   \n",
       "1389    P-0012072-T01-IM5                          NaN   \n",
       "\n",
       "      Match_Norm_Seq_Allele1  Match_Norm_Seq_Allele2  \\\n",
       "0                        NaN                     NaN   \n",
       "1                        NaN                     NaN   \n",
       "2                        NaN                     NaN   \n",
       "3                        NaN                     NaN   \n",
       "4                        NaN                     NaN   \n",
       "...                      ...                     ...   \n",
       "1385                     NaN                     NaN   \n",
       "1386                     NaN                     NaN   \n",
       "1387                     NaN                     NaN   \n",
       "1388                     NaN                     NaN   \n",
       "1389                     NaN                     NaN   \n",
       "\n",
       "      Tumor_Validation_Allele1  Tumor_Validation_Allele2  \\\n",
       "0                          NaN                       NaN   \n",
       "1                          NaN                       NaN   \n",
       "2                          NaN                       NaN   \n",
       "3                          NaN                       NaN   \n",
       "4                          NaN                       NaN   \n",
       "...                        ...                       ...   \n",
       "1385                       NaN                       NaN   \n",
       "1386                       NaN                       NaN   \n",
       "1387                       NaN                       NaN   \n",
       "1388                       NaN                       NaN   \n",
       "1389                       NaN                       NaN   \n",
       "\n",
       "      Match_Norm_Validation_Allele1  Match_Norm_Validation_Allele2  \\\n",
       "0                               NaN                            NaN   \n",
       "1                               NaN                            NaN   \n",
       "2                               NaN                            NaN   \n",
       "3                               NaN                            NaN   \n",
       "4                               NaN                            NaN   \n",
       "...                             ...                            ...   \n",
       "1385                            NaN                            NaN   \n",
       "1386                            NaN                            NaN   \n",
       "1387                            NaN                            NaN   \n",
       "1388                            NaN                            NaN   \n",
       "1389                            NaN                            NaN   \n",
       "\n",
       "      Verification_Status  Validation_Status  Mutation_Status  \\\n",
       "0                     NaN                NaN              NaN   \n",
       "1                     NaN                NaN              NaN   \n",
       "2                     NaN                NaN              NaN   \n",
       "3                     NaN                NaN              NaN   \n",
       "4                     NaN                NaN              NaN   \n",
       "...                   ...                ...              ...   \n",
       "1385                  NaN                NaN              NaN   \n",
       "1386                  NaN                NaN              NaN   \n",
       "1387                  NaN                NaN              NaN   \n",
       "1388                  NaN                NaN              NaN   \n",
       "1389                  NaN                NaN              NaN   \n",
       "\n",
       "      Sequencing_Phase  Sequence_Source  Validation_Method  Score  BAM_File  \\\n",
       "0                  NaN              NaN                NaN    NaN       NaN   \n",
       "1                  NaN              NaN                NaN    NaN       NaN   \n",
       "2                  NaN              NaN                NaN    NaN       NaN   \n",
       "3                  NaN              NaN                NaN    NaN       NaN   \n",
       "4                  NaN              NaN                NaN    NaN       NaN   \n",
       "...                ...              ...                ...    ...       ...   \n",
       "1385               NaN              NaN                NaN    NaN       NaN   \n",
       "1386               NaN              NaN                NaN    NaN       NaN   \n",
       "1387               NaN              NaN                NaN    NaN       NaN   \n",
       "1388               NaN              NaN                NaN    NaN       NaN   \n",
       "1389               NaN              NaN                NaN    NaN       NaN   \n",
       "\n",
       "      Sequencer  t_ref_count  t_alt_count  n_ref_count  n_alt_count  \\\n",
       "0           NaN          NaN          NaN          NaN          NaN   \n",
       "1           NaN          NaN          NaN          NaN          NaN   \n",
       "2           NaN          NaN          NaN          NaN          NaN   \n",
       "3           NaN          NaN          NaN          NaN          NaN   \n",
       "4           NaN          NaN          NaN          NaN          NaN   \n",
       "...         ...          ...          ...          ...          ...   \n",
       "1385        NaN        424.0        466.0          NaN          NaN   \n",
       "1386        NaN        112.0        228.0          NaN          NaN   \n",
       "1387        NaN        372.0        193.0          NaN          NaN   \n",
       "1388        NaN        484.0        229.0          NaN          NaN   \n",
       "1389        NaN        664.0        334.0          NaN          NaN   \n",
       "\n",
       "                               HGVSc               HGVSp   HGVSp_Short  \\\n",
       "0                                NaN                 NaN           NaN   \n",
       "1                                NaN                 NaN           NaN   \n",
       "2                                NaN                 NaN           NaN   \n",
       "3                                NaN                 NaN           NaN   \n",
       "4                                NaN                 NaN           NaN   \n",
       "...                              ...                 ...           ...   \n",
       "1385  ENST00000269305.4:c.717_724del  p.Asn239LysfsTer22  p.N239Kfs*22   \n",
       "1386      ENST00000269305.4:c.512A>G         p.Glu171Gly       p.E171G   \n",
       "1387      ENST00000269305.4:c.403T>A         p.Cys135Ser       p.C135S   \n",
       "1388      ENST00000269305.4:c.201del   p.Glu68ArgfsTer55   p.E68Rfs*55   \n",
       "1389  ENST00000269305.4:c.700_702del         p.Tyr234del     p.Y234del   \n",
       "\n",
       "        Transcript_ID          RefSeq  Protein_position             Codons  \\\n",
       "0                 NaN             NaN               NaN                NaN   \n",
       "1                 NaN             NaN               NaN                NaN   \n",
       "2                 NaN             NaN               NaN                NaN   \n",
       "3                 NaN             NaN               NaN                NaN   \n",
       "4                 NaN             NaN               NaN                NaN   \n",
       "...               ...             ...               ...                ...   \n",
       "1385  ENST00000269305  NM_001126112.2             239.0  aaCAGTTCCTgc/aagc   \n",
       "1386  ENST00000269305  NM_001126112.2             171.0            gAg/gGg   \n",
       "1387  ENST00000269305  NM_001126112.2             135.0            Tgc/Agc   \n",
       "1388  ENST00000269305  NM_001126112.2              67.0             ccA/cc   \n",
       "1389  ENST00000269305  NM_001126112.2             234.0              TAC/-   \n",
       "\n",
       "      Hotspot           cDNA_change  \n",
       "0         NaN                   NaN  \n",
       "1         NaN                   NaN  \n",
       "2         NaN                   NaN  \n",
       "3         NaN                   NaN  \n",
       "4         NaN                   NaN  \n",
       "...       ...                   ...  \n",
       "1385      0.0  c.717_724delCAGTTCCT  \n",
       "1386      0.0              c.512A>G  \n",
       "1387      0.0              c.403T>A  \n",
       "1388      0.0             c.201delA  \n",
       "1389      0.0       c.700_702delTAC  \n",
       "\n",
       "[1390 rows x 50 columns]"
      ]
     },
     "execution_count": 119,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "control_fraction=.05 #2% of the library should be silent controls\n",
    "library_input = pegg.library_input_generator(mutant_input, gene_name, chrom, strand, start_end_cds, records, index_list, control_fraction)\n",
    "library_input\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1fa51fe5",
   "metadata": {},
   "source": [
    "Now that we have aggregated our library of mutations, including internal controls, we can simply run PEGG on this dataset to generate a pegRNA library with our desired parameters, as in the first case study:\n",
    "\n",
    "**Note: this function aggregates all of the unique mutations at the DNA level in our desired gene (here TP53). This means that multiple distinct mutations that result in the same amino acid change could be included in our library. If you want to instead include unique amino acid changes, these need to be manually filtered (can be done based on output of mutation_aggregator() if HGVSp info is included in dataset**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 120,
   "id": "2d8694fb",
   "metadata": {},
   "outputs": [],
   "source": [
    "#select list of mutations to model\n",
    "mut_idx_list = range(len(library_input)) #generate pegRNAs for ALL mutations in library_input\n",
    "\n",
    "PAM = 'NGG'\n",
    "#if you want to check multiple RTT lengths/PBS lengths...\n",
    "RTT_lengths = [20,25,30]\n",
    "PBS_lengths = [5,7,10]\n",
    "\n",
    "guides_per_mut=5 #generate top 5 pegRNAs for each mutation input"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 121,
   "id": "6380ded6",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>mutant index</th>\n",
       "      <th>gene</th>\n",
       "      <th>chr</th>\n",
       "      <th>start</th>\n",
       "      <th>end</th>\n",
       "      <th>variant_type</th>\n",
       "      <th>ref_allele</th>\n",
       "      <th>mut_allele</th>\n",
       "      <th>PAM location</th>\n",
       "      <th>PAM strand</th>\n",
       "      <th>PAM</th>\n",
       "      <th>protospacer</th>\n",
       "      <th>PBS</th>\n",
       "      <th>PBS length</th>\n",
       "      <th>RTT</th>\n",
       "      <th>RTT length</th>\n",
       "      <th>PBS_RTT_5to3</th>\n",
       "      <th>distance mut to 5' RTT</th>\n",
       "      <th>distance to nick</th>\n",
       "      <th>target sequence</th>\n",
       "      <th>target length</th>\n",
       "      <th>MIT specificity</th>\n",
       "      <th>CFD efficiency percentile</th>\n",
       "      <th>contains terminator?</th>\n",
       "      <th>contains RE site?</th>\n",
       "      <th>last templated base C?</th>\n",
       "      <th>PBS GC content</th>\n",
       "      <th>composite score</th>\n",
       "      <th>target genomic edit</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>TP53</td>\n",
       "      <td>chr17</td>\n",
       "      <td>7579907</td>\n",
       "      <td>7579909</td>\n",
       "      <td>ONP</td>\n",
       "      <td>CTC</td>\n",
       "      <td>TTC</td>\n",
       "      <td>7579900</td>\n",
       "      <td>+</td>\n",
       "      <td>CGG</td>\n",
       "      <td>TCGACGCTAGGATCTGACTG</td>\n",
       "      <td>ATCCTAGACT</td>\n",
       "      <td>10</td>\n",
       "      <td>GACGCCGAGAAGGTACCGTCACTGG</td>\n",
       "      <td>25</td>\n",
       "      <td>GGTCACTGCCATGGAAGAGCCGCAGTCAGATCCTA</td>\n",
       "      <td>15</td>\n",
       "      <td>10</td>\n",
       "      <td>GGGGCTCGACGCTAGGATCTGACTGCGGCTCCTCCATGGCAGTGAC...</td>\n",
       "      <td>60</td>\n",
       "      <td>93</td>\n",
       "      <td>100</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>0.400000</td>\n",
       "      <td>3.930000</td>\n",
       "      <td>ATGTTTCCTGACTCAGAGGGGGCTCGACGCTAGGATCTGACTGCGG...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0</td>\n",
       "      <td>TP53</td>\n",
       "      <td>chr17</td>\n",
       "      <td>7579907</td>\n",
       "      <td>7579909</td>\n",
       "      <td>ONP</td>\n",
       "      <td>CTC</td>\n",
       "      <td>TTC</td>\n",
       "      <td>7579900</td>\n",
       "      <td>+</td>\n",
       "      <td>CGG</td>\n",
       "      <td>TCGACGCTAGGATCTGACTG</td>\n",
       "      <td>ATCCTAGACT</td>\n",
       "      <td>10</td>\n",
       "      <td>GACGCCGAGAAGGTACCGTCACTGGGCCTT</td>\n",
       "      <td>30</td>\n",
       "      <td>TTCCGGGTCACTGCCATGGAAGAGCCGCAGTCAGATCCTA</td>\n",
       "      <td>20</td>\n",
       "      <td>10</td>\n",
       "      <td>GGGGCTCGACGCTAGGATCTGACTGCGGCTCCTCCATGGCAGTGAC...</td>\n",
       "      <td>60</td>\n",
       "      <td>93</td>\n",
       "      <td>100</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>0.400000</td>\n",
       "      <td>3.930000</td>\n",
       "      <td>ATGTTTCCTGACTCAGAGGGGGCTCGACGCTAGGATCTGACTGCGG...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0</td>\n",
       "      <td>TP53</td>\n",
       "      <td>chr17</td>\n",
       "      <td>7579907</td>\n",
       "      <td>7579909</td>\n",
       "      <td>ONP</td>\n",
       "      <td>CTC</td>\n",
       "      <td>TTC</td>\n",
       "      <td>7579900</td>\n",
       "      <td>+</td>\n",
       "      <td>CGG</td>\n",
       "      <td>TCGACGCTAGGATCTGACTG</td>\n",
       "      <td>CTAGACT</td>\n",
       "      <td>7</td>\n",
       "      <td>GACGCCGAGAAGGTACCGTCACTGG</td>\n",
       "      <td>25</td>\n",
       "      <td>GGTCACTGCCATGGAAGAGCCGCAGTCAGATC</td>\n",
       "      <td>15</td>\n",
       "      <td>10</td>\n",
       "      <td>GGGGCTCGACGCTAGGATCTGACTGCGGCTCCTCCATGGCAGTGAC...</td>\n",
       "      <td>60</td>\n",
       "      <td>93</td>\n",
       "      <td>100</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>0.428571</td>\n",
       "      <td>3.930000</td>\n",
       "      <td>ATGTTTCCTGACTCAGAGGGGGCTCGACGCTAGGATCTGACTGCGG...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0</td>\n",
       "      <td>TP53</td>\n",
       "      <td>chr17</td>\n",
       "      <td>7579907</td>\n",
       "      <td>7579909</td>\n",
       "      <td>ONP</td>\n",
       "      <td>CTC</td>\n",
       "      <td>TTC</td>\n",
       "      <td>7579900</td>\n",
       "      <td>+</td>\n",
       "      <td>CGG</td>\n",
       "      <td>TCGACGCTAGGATCTGACTG</td>\n",
       "      <td>AGACT</td>\n",
       "      <td>5</td>\n",
       "      <td>GACGCCGAGAAGGTACCGTCACTGGGCCTT</td>\n",
       "      <td>30</td>\n",
       "      <td>TTCCGGGTCACTGCCATGGAAGAGCCGCAGTCAGA</td>\n",
       "      <td>20</td>\n",
       "      <td>10</td>\n",
       "      <td>GGGGCTCGACGCTAGGATCTGACTGCGGCTCCTCCATGGCAGTGAC...</td>\n",
       "      <td>60</td>\n",
       "      <td>93</td>\n",
       "      <td>100</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>0.400000</td>\n",
       "      <td>3.930000</td>\n",
       "      <td>ATGTTTCCTGACTCAGAGGGGGCTCGACGCTAGGATCTGACTGCGG...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0</td>\n",
       "      <td>TP53</td>\n",
       "      <td>chr17</td>\n",
       "      <td>7579907</td>\n",
       "      <td>7579909</td>\n",
       "      <td>ONP</td>\n",
       "      <td>CTC</td>\n",
       "      <td>TTC</td>\n",
       "      <td>7579900</td>\n",
       "      <td>+</td>\n",
       "      <td>CGG</td>\n",
       "      <td>TCGACGCTAGGATCTGACTG</td>\n",
       "      <td>AGACT</td>\n",
       "      <td>5</td>\n",
       "      <td>GACGCCGAGAAGGTACCGTCACTGG</td>\n",
       "      <td>25</td>\n",
       "      <td>GGTCACTGCCATGGAAGAGCCGCAGTCAGA</td>\n",
       "      <td>15</td>\n",
       "      <td>10</td>\n",
       "      <td>GGGGCTCGACGCTAGGATCTGACTGCGGCTCCTCCATGGCAGTGAC...</td>\n",
       "      <td>60</td>\n",
       "      <td>93</td>\n",
       "      <td>100</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>0.400000</td>\n",
       "      <td>3.930000</td>\n",
       "      <td>ATGTTTCCTGACTCAGAGGGGGCTCGACGCTAGGATCTGACTGCGG...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6500</th>\n",
       "      <td>1389</td>\n",
       "      <td>TP53</td>\n",
       "      <td>chr17</td>\n",
       "      <td>7577579</td>\n",
       "      <td>7577581</td>\n",
       "      <td>DEL</td>\n",
       "      <td>GTA</td>\n",
       "      <td>-</td>\n",
       "      <td>7577556</td>\n",
       "      <td>+</td>\n",
       "      <td>AGG</td>\n",
       "      <td>CCGGTTCATGCCGCCCATGC</td>\n",
       "      <td>TACGGCGGGT</td>\n",
       "      <td>10</td>\n",
       "      <td>ACGTCCTTGACAATGTGTACATCAACACCT</td>\n",
       "      <td>30</td>\n",
       "      <td>TCCACAACTACATGTGTAACAGTTCCTGCATGGGCGGCAT</td>\n",
       "      <td>4</td>\n",
       "      <td>26</td>\n",
       "      <td>GGCACAAACACGCACCTCAAAGCTGTTCCGTCCCAGTAGATTACCA...</td>\n",
       "      <td>60</td>\n",
       "      <td>79</td>\n",
       "      <td>75</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>0.700000</td>\n",
       "      <td>1.573333</td>\n",
       "      <td>TGGGCCTCCGGTTCATGCCGCCCATGCAGGAACTGTTACACATGTA...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6501</th>\n",
       "      <td>1389</td>\n",
       "      <td>TP53</td>\n",
       "      <td>chr17</td>\n",
       "      <td>7577579</td>\n",
       "      <td>7577581</td>\n",
       "      <td>DEL</td>\n",
       "      <td>GTA</td>\n",
       "      <td>-</td>\n",
       "      <td>7577606</td>\n",
       "      <td>-</td>\n",
       "      <td>TGG</td>\n",
       "      <td>GCCTGTGTTATCTCCTAGGT</td>\n",
       "      <td>TAGGA</td>\n",
       "      <td>5</td>\n",
       "      <td>TTGTGGATGGTGGTACAGTCAGAGCCAACC</td>\n",
       "      <td>30</td>\n",
       "      <td>TTGTGGATGGTGGTACAGTCAGAGCCAACCTAGGA</td>\n",
       "      <td>2</td>\n",
       "      <td>28</td>\n",
       "      <td>GTCATGTGCTGTGACTGCTTGTAGATGGCCATGGCGCGGACGCGGG...</td>\n",
       "      <td>60</td>\n",
       "      <td>44</td>\n",
       "      <td>43</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>0.400000</td>\n",
       "      <td>1.136667</td>\n",
       "      <td>TGGGCCTCCGGTTCATGCCGCCCATGCAGGAACTGTTACACATGTA...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6502</th>\n",
       "      <td>1389</td>\n",
       "      <td>TP53</td>\n",
       "      <td>chr17</td>\n",
       "      <td>7577579</td>\n",
       "      <td>7577581</td>\n",
       "      <td>DEL</td>\n",
       "      <td>GTA</td>\n",
       "      <td>-</td>\n",
       "      <td>7577606</td>\n",
       "      <td>-</td>\n",
       "      <td>TGG</td>\n",
       "      <td>GCCTGTGTTATCTCCTAGGT</td>\n",
       "      <td>TAGGAGA</td>\n",
       "      <td>7</td>\n",
       "      <td>TTGTGGATGGTGGTACAGTCAGAGCCAACC</td>\n",
       "      <td>30</td>\n",
       "      <td>TTGTGGATGGTGGTACAGTCAGAGCCAACCTAGGAGA</td>\n",
       "      <td>2</td>\n",
       "      <td>28</td>\n",
       "      <td>GTCATGTGCTGTGACTGCTTGTAGATGGCCATGGCGCGGACGCGGG...</td>\n",
       "      <td>60</td>\n",
       "      <td>44</td>\n",
       "      <td>43</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>0.428571</td>\n",
       "      <td>1.136667</td>\n",
       "      <td>TGGGCCTCCGGTTCATGCCGCCCATGCAGGAACTGTTACACATGTA...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6503</th>\n",
       "      <td>1389</td>\n",
       "      <td>TP53</td>\n",
       "      <td>chr17</td>\n",
       "      <td>7577579</td>\n",
       "      <td>7577581</td>\n",
       "      <td>DEL</td>\n",
       "      <td>GTA</td>\n",
       "      <td>-</td>\n",
       "      <td>7577556</td>\n",
       "      <td>+</td>\n",
       "      <td>AGG</td>\n",
       "      <td>CCGGTTCATGCCGCCCATGC</td>\n",
       "      <td>CGGGT</td>\n",
       "      <td>5</td>\n",
       "      <td>ACGTCCTTGACAATGTGTACATCAACACCT</td>\n",
       "      <td>30</td>\n",
       "      <td>TCCACAACTACATGTGTAACAGTTCCTGCATGGGC</td>\n",
       "      <td>4</td>\n",
       "      <td>26</td>\n",
       "      <td>GGCACAAACACGCACCTCAAAGCTGTTCCGTCCCAGTAGATTACCA...</td>\n",
       "      <td>60</td>\n",
       "      <td>79</td>\n",
       "      <td>75</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>0.800000</td>\n",
       "      <td>1.073333</td>\n",
       "      <td>TGGGCCTCCGGTTCATGCCGCCCATGCAGGAACTGTTACACATGTA...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6504</th>\n",
       "      <td>1389</td>\n",
       "      <td>TP53</td>\n",
       "      <td>chr17</td>\n",
       "      <td>7577579</td>\n",
       "      <td>7577581</td>\n",
       "      <td>DEL</td>\n",
       "      <td>GTA</td>\n",
       "      <td>-</td>\n",
       "      <td>7577556</td>\n",
       "      <td>+</td>\n",
       "      <td>AGG</td>\n",
       "      <td>CCGGTTCATGCCGCCCATGC</td>\n",
       "      <td>GGCGGGT</td>\n",
       "      <td>7</td>\n",
       "      <td>ACGTCCTTGACAATGTGTACATCAACACCT</td>\n",
       "      <td>30</td>\n",
       "      <td>TCCACAACTACATGTGTAACAGTTCCTGCATGGGCGG</td>\n",
       "      <td>4</td>\n",
       "      <td>26</td>\n",
       "      <td>GGCACAAACACGCACCTCAAAGCTGTTCCGTCCCAGTAGATTACCA...</td>\n",
       "      <td>60</td>\n",
       "      <td>79</td>\n",
       "      <td>75</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>0.857143</td>\n",
       "      <td>0.787619</td>\n",
       "      <td>TGGGCCTCCGGTTCATGCCGCCCATGCAGGAACTGTTACACATGTA...</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>6505 rows × 29 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "      mutant index  gene    chr    start      end variant_type ref_allele  \\\n",
       "0                0  TP53  chr17  7579907  7579909          ONP        CTC   \n",
       "1                0  TP53  chr17  7579907  7579909          ONP        CTC   \n",
       "2                0  TP53  chr17  7579907  7579909          ONP        CTC   \n",
       "3                0  TP53  chr17  7579907  7579909          ONP        CTC   \n",
       "4                0  TP53  chr17  7579907  7579909          ONP        CTC   \n",
       "...            ...   ...    ...      ...      ...          ...        ...   \n",
       "6500          1389  TP53  chr17  7577579  7577581          DEL        GTA   \n",
       "6501          1389  TP53  chr17  7577579  7577581          DEL        GTA   \n",
       "6502          1389  TP53  chr17  7577579  7577581          DEL        GTA   \n",
       "6503          1389  TP53  chr17  7577579  7577581          DEL        GTA   \n",
       "6504          1389  TP53  chr17  7577579  7577581          DEL        GTA   \n",
       "\n",
       "     mut_allele  PAM location PAM strand  PAM           protospacer  \\\n",
       "0           TTC       7579900          +  CGG  TCGACGCTAGGATCTGACTG   \n",
       "1           TTC       7579900          +  CGG  TCGACGCTAGGATCTGACTG   \n",
       "2           TTC       7579900          +  CGG  TCGACGCTAGGATCTGACTG   \n",
       "3           TTC       7579900          +  CGG  TCGACGCTAGGATCTGACTG   \n",
       "4           TTC       7579900          +  CGG  TCGACGCTAGGATCTGACTG   \n",
       "...         ...           ...        ...  ...                   ...   \n",
       "6500          -       7577556          +  AGG  CCGGTTCATGCCGCCCATGC   \n",
       "6501          -       7577606          -  TGG  GCCTGTGTTATCTCCTAGGT   \n",
       "6502          -       7577606          -  TGG  GCCTGTGTTATCTCCTAGGT   \n",
       "6503          -       7577556          +  AGG  CCGGTTCATGCCGCCCATGC   \n",
       "6504          -       7577556          +  AGG  CCGGTTCATGCCGCCCATGC   \n",
       "\n",
       "             PBS  PBS length                             RTT  RTT length  \\\n",
       "0     ATCCTAGACT          10       GACGCCGAGAAGGTACCGTCACTGG          25   \n",
       "1     ATCCTAGACT          10  GACGCCGAGAAGGTACCGTCACTGGGCCTT          30   \n",
       "2        CTAGACT           7       GACGCCGAGAAGGTACCGTCACTGG          25   \n",
       "3          AGACT           5  GACGCCGAGAAGGTACCGTCACTGGGCCTT          30   \n",
       "4          AGACT           5       GACGCCGAGAAGGTACCGTCACTGG          25   \n",
       "...          ...         ...                             ...         ...   \n",
       "6500  TACGGCGGGT          10  ACGTCCTTGACAATGTGTACATCAACACCT          30   \n",
       "6501       TAGGA           5  TTGTGGATGGTGGTACAGTCAGAGCCAACC          30   \n",
       "6502     TAGGAGA           7  TTGTGGATGGTGGTACAGTCAGAGCCAACC          30   \n",
       "6503       CGGGT           5  ACGTCCTTGACAATGTGTACATCAACACCT          30   \n",
       "6504     GGCGGGT           7  ACGTCCTTGACAATGTGTACATCAACACCT          30   \n",
       "\n",
       "                                  PBS_RTT_5to3  distance mut to 5' RTT  \\\n",
       "0          GGTCACTGCCATGGAAGAGCCGCAGTCAGATCCTA                      15   \n",
       "1     TTCCGGGTCACTGCCATGGAAGAGCCGCAGTCAGATCCTA                      20   \n",
       "2             GGTCACTGCCATGGAAGAGCCGCAGTCAGATC                      15   \n",
       "3          TTCCGGGTCACTGCCATGGAAGAGCCGCAGTCAGA                      20   \n",
       "4               GGTCACTGCCATGGAAGAGCCGCAGTCAGA                      15   \n",
       "...                                        ...                     ...   \n",
       "6500  TCCACAACTACATGTGTAACAGTTCCTGCATGGGCGGCAT                       4   \n",
       "6501       TTGTGGATGGTGGTACAGTCAGAGCCAACCTAGGA                       2   \n",
       "6502     TTGTGGATGGTGGTACAGTCAGAGCCAACCTAGGAGA                       2   \n",
       "6503       TCCACAACTACATGTGTAACAGTTCCTGCATGGGC                       4   \n",
       "6504     TCCACAACTACATGTGTAACAGTTCCTGCATGGGCGG                       4   \n",
       "\n",
       "      distance to nick                                    target sequence  \\\n",
       "0                   10  GGGGCTCGACGCTAGGATCTGACTGCGGCTCCTCCATGGCAGTGAC...   \n",
       "1                   10  GGGGCTCGACGCTAGGATCTGACTGCGGCTCCTCCATGGCAGTGAC...   \n",
       "2                   10  GGGGCTCGACGCTAGGATCTGACTGCGGCTCCTCCATGGCAGTGAC...   \n",
       "3                   10  GGGGCTCGACGCTAGGATCTGACTGCGGCTCCTCCATGGCAGTGAC...   \n",
       "4                   10  GGGGCTCGACGCTAGGATCTGACTGCGGCTCCTCCATGGCAGTGAC...   \n",
       "...                ...                                                ...   \n",
       "6500                26  GGCACAAACACGCACCTCAAAGCTGTTCCGTCCCAGTAGATTACCA...   \n",
       "6501                28  GTCATGTGCTGTGACTGCTTGTAGATGGCCATGGCGCGGACGCGGG...   \n",
       "6502                28  GTCATGTGCTGTGACTGCTTGTAGATGGCCATGGCGCGGACGCGGG...   \n",
       "6503                26  GGCACAAACACGCACCTCAAAGCTGTTCCGTCCCAGTAGATTACCA...   \n",
       "6504                26  GGCACAAACACGCACCTCAAAGCTGTTCCGTCCCAGTAGATTACCA...   \n",
       "\n",
       "      target length MIT specificity CFD efficiency percentile  \\\n",
       "0                60              93                       100   \n",
       "1                60              93                       100   \n",
       "2                60              93                       100   \n",
       "3                60              93                       100   \n",
       "4                60              93                       100   \n",
       "...             ...             ...                       ...   \n",
       "6500             60              79                        75   \n",
       "6501             60              44                        43   \n",
       "6502             60              44                        43   \n",
       "6503             60              79                        75   \n",
       "6504             60              79                        75   \n",
       "\n",
       "     contains terminator? contains RE site? last templated base C?  \\\n",
       "0                      no                no                     no   \n",
       "1                      no                no                     no   \n",
       "2                      no                no                     no   \n",
       "3                      no                no                     no   \n",
       "4                      no                no                     no   \n",
       "...                   ...               ...                    ...   \n",
       "6500                   no                no                     no   \n",
       "6501                   no                no                     no   \n",
       "6502                   no                no                     no   \n",
       "6503                   no                no                     no   \n",
       "6504                   no                no                     no   \n",
       "\n",
       "      PBS GC content  composite score  \\\n",
       "0           0.400000         3.930000   \n",
       "1           0.400000         3.930000   \n",
       "2           0.428571         3.930000   \n",
       "3           0.400000         3.930000   \n",
       "4           0.400000         3.930000   \n",
       "...              ...              ...   \n",
       "6500        0.700000         1.573333   \n",
       "6501        0.400000         1.136667   \n",
       "6502        0.428571         1.136667   \n",
       "6503        0.800000         1.073333   \n",
       "6504        0.857143         0.787619   \n",
       "\n",
       "                                    target genomic edit  \n",
       "0     ATGTTTCCTGACTCAGAGGGGGCTCGACGCTAGGATCTGACTGCGG...  \n",
       "1     ATGTTTCCTGACTCAGAGGGGGCTCGACGCTAGGATCTGACTGCGG...  \n",
       "2     ATGTTTCCTGACTCAGAGGGGGCTCGACGCTAGGATCTGACTGCGG...  \n",
       "3     ATGTTTCCTGACTCAGAGGGGGCTCGACGCTAGGATCTGACTGCGG...  \n",
       "4     ATGTTTCCTGACTCAGAGGGGGCTCGACGCTAGGATCTGACTGCGG...  \n",
       "...                                                 ...  \n",
       "6500  TGGGCCTCCGGTTCATGCCGCCCATGCAGGAACTGTTACACATGTA...  \n",
       "6501  TGGGCCTCCGGTTCATGCCGCCCATGCAGGAACTGTTACACATGTA...  \n",
       "6502  TGGGCCTCCGGTTCATGCCGCCCATGCAGGAACTGTTACACATGTA...  \n",
       "6503  TGGGCCTCCGGTTCATGCCGCCCATGCAGGAACTGTTACACATGTA...  \n",
       "6504  TGGGCCTCCGGTTCATGCCGCCCATGCAGGAACTGTTACACATGTA...  \n",
       "\n",
       "[6505 rows x 29 columns]"
      ]
     },
     "execution_count": 121,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#note we've changed the first input to \"library_input\" here!\n",
    "ranked_filtered = pegg.run(library_input, mut_idx_list, records, index_list, minus_seqs, chrom_dict, PAM, RTT_lengths, PBS_lengths, guides_per_mut)\n",
    "ranked_filtered"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ffb65265",
   "metadata": {},
   "source": [
    "We can now visualize the pegRNAs that have been designed:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 96,
   "id": "0e03558c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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brvtxsCBA9l+++054ogj+PnPf17HI6gPbxEuSZLUw6YumNqQfq+beF3N2nr77be58soraWlpKVvnkEMOYc2aNVx44YXsvvvuPPfcc9x1110sWLCAY489tmbxNAMTaUlSnzVs1dhGhyD1GhMmTOCmm27ioosuYtttty1aZ+HChTz66KP87ne/Y/z48W3lJ598MimleoVaN07tkCRJUqc+//nPs+WWW3L11VeXrLN69WqAool2RPRUaA1jIi1JkqRODRkyhLPPPpsbbriBV155pWidffbZh80224xTTz2V+++/nw0bNtQ5yvoykZYkSVJFpk6dSr9+/fjud79bdPsee+zBt7/9be677z4OPvhghg4dypFHHsmtt95a30DrxERakiRJFdlqq62YOnUq3//+93n11VeL1jnnnHP4y1/+QktLC0cffTQPPPAAn/70pzn//PPrHG3PM5GWJElSxc4++2w2bNhQdvWOHXbYgTPPPJM5c+bw3HPPceSRR/Ltb3+75JSQ3spEWpIkSRUbMWIEZ5xxBt/5zndYs2ZNp/WHDBnCmWeeyTvvvMMzzzxThwjrx0RakiRJXfLVr36V119/nRtuuKFd+apVq4p+wfDpp58GYOTIkXWJr15cR1qSJEldst1223Hqqady/fXXtyv/5S9/yfnnn89nP/tZxo8fz2abbcavf/1rrrjiCj75yU+y6667NijinuEVaUmSJHXZtGnT6N+/f7uy/fffn2OOOYY5c+ZwwgkncOyxxzJnzhy+/vWvc8sttzQo0p7jFWlJkqQeVstbddfD9OnTmT59OgC77LJL0bsSvuc972H9+vXtynbaaaeyN2zZ1HhFWpIkSaqCibQkSZJUhbpP7YiIpcDrwDvAhpTSuIgYDtwC7AIsBT6dUvrfescmSZIkVapRV6QPSSntk1Ial31+HrAgpbQHsCD7XJIkSWpazTK14xhgdvb32cCxjQtFkiRJ6lwjEukE3BURD0XE6dmyUSml5QDZx6KrdUfE6RHxYEQ8uHLlyjqFKylnXssS5rUsaXQY6mU2xXNmUzwmSV3XiOXvPpxSeiEiRgJ3R8STle6YUpoBzAAYN25cx3VYJEmSpDqp+xXplNIL2ccVwM+ADwIvRcR2ANnHFfWOS5IkSeqKuibSETEkIobmfgcOBx4FbgcmZatNAm6rZ1ySJElSV9V7asco4GcRkev7RymlOyNiMTAnIiYDzwIn1DkuSZIkqUvqekU6pfTnlNLe2Z89U0qXZstfSSlNTCntkX1cVc+4JEmS9DfTp08nIogINttsM7beemvGjx/PhRdeyIsvvtiubq5e4c/o0aPbtTdixIh6H0aPa8SXDSVJkvqURq30ctSUvaved6uttuLOO+8E4NVXX+X3v/89119/PTNmzODOO+9kv/32a6v7la98heOPP77d/gMHDqy6797CRFqSJEkd9OvXjwMOOKDt+RFHHMEXvvAFPvKRj/CZz3yGp556is033xyAXXbZpV3dvqJZbsgiSZKkJveud72Lq666ij/96U/cfffdjQ6n4UykJUmSVLFDDjmEfv368dvf/ratbOPGjWzYsKHdz8aNGxsYZX2YSEuSJKliAwYMYMSIEbz00kttZV/60pfo379/u59TTz21gVHWh3OkJUmS1CUptb/B9Ne+9jU+/elPtyvbFFfpKGQiLUmSpIq99dZbvPLKK4waNaqtbOedd2bcuHENjKoxnNohSZKkit17771s2LCBAw88sNGhNJyJtCRJkiqyevVqpk2bxujRozn00EMbHU7DObVDkiRJHWzYsKFtZY7XX3+dhx56iOuvv541a9Zw5513tq0hDbB06dJ2q3hA5o6H+++/f9vz9evX85Of/KRDPx/96EfZZptteugoepaJtCRJUg/rzh0GG+XVV1/lwAMPJCIYNmwYo0eP5uSTT+ass85i2223bVf3mmuu4ZprrmlXtvnmm7Nhw4a256+//jonnHBCh37uvfdeJkyY0CPH0NNMpCVJktTO9OnTmT59ekV1C1fw6G57vYlzpCVJkqQqmEhLkiRJVTCRliRJkqpgIi1JkiRVwURakiRJqoKJtCRJklQFE2lJkiSpCibSkiRJUhVMpCVJkqQqmEhLTWr+mJmNDqFivSlW1c+8liXMa1nS686PXNzzWpY0OpQe1dra2qGsLxy3KjN9+nQigiOOOKLDtuOPP75Hbuk9Z84cZs2aVdM2Fy5cSETw6KOP1rTdHG8RLkmS1MOK/cOlHk466aRu7X/XXXexePFixo8fX6OISpszZw4vv/wyp5xySo/3VStekZYkSVIHw4cPZ6+99uLSSy9tdCjtvP3227zzzjuNDgMwkZYkSVIREcEFF1zA7bffzh/+8IeS9Z599llOPPFEhg8fzuDBgzniiCN46qmn2raXml4xYcIEjj/+eABOOeUUfvrTn3LfffcREUQE06dPb1dvxowZ7L777gwcOJAXXniBJ598khNPPJGddtqJwYMHs+eee/Ld736XjRs31n4wSnBqhyRJkoo64YQTuOSSS7j00kv58Y9/3GH7qlWrOOigg3j3u9/NDTfcwODBg7niiis49NBD+eMf/8igQYMq6ueiiy7i2WefZfXq1fzgBz8AYMcdd2zbvmjRIv70pz9x5ZVXMnjwYLbaaiv++Mc/8r73vY9//Md/ZOjQoTzyyCNccsklrF27lvPPP782A9AJE2lJkiQVtdlmm3HeeecxefJkvvnNb/Le97633fbvfOc7vPnmmzzyyCMMHz4cgA9/+MPssssu3HTTTUyZMqWifnbffXeGDx/Oxo0bOeCAAzpsX716NQ8//DDbbrttW9nEiROZOHEiACklDjroINasWcPMmTPrlkg7tUOSJEklnXzyyey8885cfvnlHbbdc889HHbYYQwbNowNGzawYcMGhg4dyn777ceDDz5Ysxj222+/dkk0wFtvvcUll1zC6NGjGTBgAP379+fCCy/kL3/5Cxs2bKhZ3+V0K5GOiHfVKA5JkiQ1oX79+nHuuedy880389e//rXdtpdffplbbrmF/v37t/u59957WbZsWc1iGDVqVIeyadOmcfXVV3P66adzxx13sHjxYr7+9a8DmSS7Hiqa2hERXwCGppSuyj7fB/gFsF1EPAIck1J6rqeClCRJUuOceuqpfOtb3+LKK69sVz58+HA+9alPcdFFF3XYZ+jQoQAMHDgQgPXr17fbvmrVKkaMGFFR/xHRoezWW2/lrLPO4txzz20rmzdvXkXt1UqlV6TPAl7Le/6vwAvAP2bbuKLGcUmSJKlJDBgwgK9+9avcdNNNLF++vK184sSJPPbYY+y5556MGzeu3c/73vc+4G9fGnziiSfa9lu2bFm7lT0Atthiiy5dSV67di0DBgxoe/7OO+8U/UJkT6r0y4Y7A08BRMQ2wIeBiSmlhRGxHriuh+KTJElSEzjjjDO47LLL+PWvf81HP/pRAM455xxuvvlmPvaxj3HWWWexww478NJLL3Hfffdx0EEHcdJJJ7Hjjjsyfvx4LrroIgYPHszGjRu57LLL2r6cmDNmzBhuu+02fv7zn7Pjjjuy/fbbs/3225eM57DDDqOlpYXRo0czfPhwWlpaWLduXY+OQaFKr0ivA7bI/n4IsAb4Vfb5KuBdtQ1LkiRJzWTw4MF8+ctfblc2YsQIfvvb3zJmzBi+/OUvc/jhh3Puuefy6quvstdee7XV+9GPfsTOO+/MySefzAUXXMDFF1/cdsU658wzz+Twww/n1FNPZfz48cyYMaNsPN///vc5+OCDmTJlCqeeeirvf//767ZaR06lV6R/B0yJiOeALwJ3ppRyt5TZjcw0D0mSJBXR3Vt119v06dPbboiS74ILLuCCCy5oV7b99tvzH//xH2XbGz16NAsXLmxXdswxx7R7PmLECH72s5912Ldwv5xRo0YVrX/aaae1/T5hwgRSSmVj645Kr0h/BRgL/AHYCbgwb9tngEU1jkuSJElqahVdkU4pPQ6Mjoh3A6tS+9T+q8Dy4ntKkiRJm6YurSOdUnolP4mOiCHAXsDsWgcmSZIkNbMu3yI8IrYAPgGcBHwSGAQ8VuO4JEmSpKZW6Q1ZNgMmkkme/wHYCkjAfwLfSyk93GMRSpIkSU2obCIdER8ikzyfAGwDrAZ+AtwB/BS4ySRakiTpb1JKRe/Ep+bUnVU9SibSEbGUzAodbwL/BbQC/51Sejsitqq6R0mSpE1U//79Wbt2LYMHD250KKrQ2rVr6d+/f1X7lvuy4c5AkFny7l5gUUrp7ap6kSRJ6gNGjhzJ888/z5o1a3p0/WJ1X0qJNWvW8PzzzzNy5Miq2ig3tWM3MtM6TgJmAC0RcTeZK9P3VdWbJEnSJmzYsGEAvPDCC7z9ttcfm13//v0ZNWpU2+vWVSUT6ZTSUuBy4PKI2BP4/8jcfOU/gfVkvmw4PiJ+45VqSVKzmteyBICjpuzd4EjUVwwbNqzqxEy9S0XrSKeUHkspXZhSGg0cCNwAvAh8G3gxIq7vwRglSZKkptOlG7IApJQeSCmdDewIHArMBT7dlTYiYvOIeDgifpF9Pjwi7o6Ip7OPW3c1LkmSJKmeupxI56SMX6aUTgNGdXH3LwFP5D0/D1iQUtoDWJB9LkmSJDWtcsvffaSLbf1PJZUiYkfgKOBS4Jxs8THAhOzvs4GFwLQu9i9JkiTVTbkr0gvJLHu3sMzPvdmfX3ahz+8C5wIb88pGpZSWA2Qfi65BEhGnR8SDEfHgypUru9Cl1FzmtSxp+wJUs8uPc/6YmcwfM7NDnbXLJtUzpJJaW1s7jG3uebOM99wh6xsdQt01y/mRU+m5UOxcr2X9XCzdOTe7um9+/UUjF3XYXvgeL/aeqkUclWqW961USrnl7z7Qyb47kkmIDwH+t5LOIuKTwIqU0kMRMaGSffKllGaQWYqPcePGuTijJEmSGqbc8nePFSuPiF3JTLuYROaW4dOAH1TY34eBT0XEJ4CBwLCIuBl4KSK2Syktj4jtgBWVH4IkSZJUfxV/2TAixkTEbOAp4OPA14BdUkrfTim9WUkbKaXzU0o7ppR2AU4EfplSOhm4nUxiTvbxti4cgyRJklR3nSbSEbF3RMwBHgM+BHwBGJ1Sui6ltK5GcVwBHBYRTwOHZZ9LkiRJTavcqh37A18HPgE8DvwT8OOU0sZS+3RFSmkhmS8sklJ6BZhYi3YlSZKkeij3ZcPfkLkN+EIyN115F/D5iChWN6WUvLuhJEmS+oxyiTRAkFmV45BO6iXARFqSJEl9RrlVO6q+66EkSZK0qTNZliRJkqrQrUQ6IvpHxGcjouia05IkSdKmquwc6YjYHTgB2An4MzArpfRKRAwCpgJnA9uRuU24JEmS1GeUW/7uYOBOMncgXAkMB6ZGxAnAj4HdgDuA41NKv6lDrJIkSVLTKDe14xvAo8COKaVtySTSi4D7gAHAR1JKnzSJliRJUl9ULpH+AHBpSmk5QErpDWAaMAg4N6V0fx3ikyRJkppSuUT63cCLBWW553/smXAkSZKk3qGzG7IMjIjBReoPKCgnpbSmppFJkiRJTayzRLrUahy/KlK2eTdjkSRJknqNcon0Z+sWhSRJktTLlLtF+Ox6BiJJkiT1Jt4iXJIkSapCZ3OkAYiIX5bZvBF4DXgE+I+U0rIaxCVJkiQ1tUqvSL8CjAYOIrOO9BvZx4OA9wJDgC8Cj0XE+B6IU5IkSWoqlSbSvyBzm/BdUkoHppQ+lVI6ENgVeBm4lcwtwx8HLu+RSCVJkqQmUmkifTHwzZTSC/mFKaXngW8CF6aUXgOuBfavbYiSJElS86k0kd4OGFBi20BgVPb3FUB0NyhJkiSp2VWaSN8HXBER++UXRsQ4MlM5FmaL9gCerVl0kiRJUpOqNJE+nczKHL+LiOcj4pGIeB54AFgNnJHX3lU1j1KSJElqMhUl0imlZSmlfYBPATOA32Qfj04p7Ztb8i6l9G8ppVk9FKv6oHktSxodQt3Na1lSl+PO9dGVvtYum8TaZZPanre2tnY7jmrbyI1TfvzDVo2tup3uKNbG5FmLmTxrcbfa7arCPhv1/unqmPbEWJU7r+YOWd8hxq6O1dwh6zuU5b83uqo7Y1BuvAu3zR8zs62skniHrRrL3CHr28ast+hNsap3q2gd6ZyU0jxgXg/FIkmSJPUaFd/ZMCIGRMQXIuLGiPjviNgjW/6ZiPi7ngtRkiRJaj6V3tnwvcDdwFbAQ8AEYGh288HAUcA/90B8kiRJUlOq9Ir0v5JZjWMX4AjaL3F3H5k7HEqSJEl9RqVzpA8GTkgprY6IzQu2vURmnWlJkiSpz6j0ivRbwKAS23YgswSeJEmS1GdUmkjfDVwQEVvllaWIGACcBdxR88gkSZKkJlbp1I6vAYuAZ8gk1Qm4GNgT2AI4rkeikyRJkppUxTdkAfYGbiDzhcM/kZkXfSuwX0rpxZ4KUJIkSWpGFd+QJaX0v8BF2R9Jknq9+WNmchTXNToMSb1Ul+5sGBHvAt5P5mr0C8BjKaXVtQ9LkiRJam6V3pClH3ApMAUYnLdpTUT8ALgwpfR2D8QnSZIkNaVKr0hfC5wOfBOYC6wARgL/h8xUj4HAF3siQEmSJKkZVZpI/xNwQUrp2ryyVcClEfEW8HVMpCVJktSHVLqO9EbgsRLbHiWzHJ4kSZLUZ1SaSP8n8LkS204Dbq5NOJIkSVLvUOnUjr8C/yciHgNu529zpI8BhgLXRMSZ2boppXR9zSOVJEmSmkilifQ12ccdgL8rsj1/7nQCTKQlSZK0SasokU4pVToFRJIkSeoTTJAlSZKkKnTpzoaSJPU2c4esB+CoBschadPjFWlJkiSpCnVNpCNiYET8LiKWRMRjEfGNbPnwiLg7Ip7OPm5dz7gkSZKkriqZSEfEzhHRv8b9rQM+llLaG9gHODIiDgDOAxaklPYAFmSfS5IkSU2r3BXpvwD7AkTELyNiTHc7SxlvZJ/2z/4kMutRz86WzwaO7W5fkiRJUk8ql0ivBQZnf58ADKtFhxGxeUQ8QuamLnenlB4ARqWUlgNkH0fWoi9JkiSpp5RLpB8GvhcRV2efnxURV5X4ubLSDlNK76SU9gF2BD4YEe+vdN+IOD0iHoyIB1euXFnpbuqFWltbaW1tbXQYTWFey5IebX/+mJlMnrWYybMWt5VVOvb3rBvdpb7yj2VeyxLmtSxh2KqxVbUxf8zMotvnj5nZbluper1ZpedEsx174evfkyo9r9YumwRkxip3ThZug/KfSZUey9QFU5m6YGpbO8X2q2ZcCs/5cjGuXTapbP21yya1O+7ciie5fkrJ1evp17XR/LukQuWWvzsN+DaZaRcJmEhmjnMxCZjWlY5TSqsjYiFwJPBSRGyXUloeEduRuVpdbJ8ZwAyAcePGpa70J0mSJNVSyUQ6pfQkcDRARGwEjk0p/a47nUXENsDb2SR6EHAocCVwOzAJuCL7eFt3+pEkSZJ6WqU3ZNkVWF6D/rYDZkfE5mSmlcxJKf0iIn4DzImIycCzwAk16EuSJEnqMRUl0imlv0ZEv4j4DHAQMBxYBfwKmJtS2lBhO/+P7EogBeWvkJk6IkmSJPUKFSXSETESuAvYC1gKvAQcCEwBlkTE4Sklv/0nSZKkPqPSOxteC7wb2D+ltFtK6cCU0m7A/tnya3sqQEmSJKkZVZpIfwKYllJanF+YfX4+cFStA5MkSZKaWaWJ9ADg9RLbXge2qE04kiRJUu9QaSL9W2BaRAzJL8w+n5bdLkmSJPUZlS5/9xXgXmBZRNxF5suGI4EjgCBzC3FJkiSpz6h0+btHImIP4KvAeDKrdywHbgCuTSm93HMhSmo2UxdMzf42qWy93O10TzrppB6OSJKk+qv0ijTZZPm8HoxFkiRJ6jUqnSMtSZIkKY+JtCRJklQFE2lJkiSpCibSkiRJUhU6TaQjYkBEXBgRe9cjIEmSJKk36DSRTimtAy4E3tXj0UiSJEm9RKVTOx4A9uvJQCRJkqTepNJ1pM8FfhQR64E7yNzZMOVXSCmtqXFskiRJUtOqNJF+IPv4r8D3StTZvPvhSJIkSb1DpYn0qRRcgZYkSZL6sooS6ZTSrB6OQ5IkSepVKr0iDUBEjCXzpcOdgJtSSi9GxGjgpZTS6z0RoCRJktSMKkqkI2JL4CbgeODt7H53Ai8ClwHPAl/toRglSZKkplPp8nfXAh8CJgJDgcjbdgdwZI3jkiRJkppapYn0ccC0lNK9wDsF2/4KvKemUQmAeS1LmNeypNFhNMSwVWMZtmpso8No09raWtP25o+ZyfwxM6uOo9LzopJ6a5dN6lCWP/Zzh6yvuK/O+uusrXJttLa20traWrSN3FgWG9Nix5f/es4dsr7iYyylsI1ix9DT7+X8Yyrsq56fI62trSXP7/wxqub8r6XCGPPPk2LnRO4zafKsxR3aKnf+5MZ+XssS1i6bxNplk1g0clHZuLpi7pD1be0Wyn8t8mMsrD91wdSK+srtk38+5d6X+fEUi6M3Kfd+acTfpWLnXE5ra2ufzhWaQaWJ9CDglRLbhtIxuZYkSZI2aZUm0ouBfy6x7Xjg17UJR5IkSeodKl214+vAPRFxD3ArmTWlPxERXyaTSH+kh+KTJEmSmlJFV6RTSveT+aLhAOA6Ml82/AawG3BoSqn0BB5JkiRpE1TxOtIppUXAwRExCNgaWJ1SWtNjkUmSJElNrNI50vneIrOW9NoaxyJJkiT1GhUn0hHxiYj4NZlE+kXgrYj4dUQc1WPRSZIkSU2qokQ6Is4A/gt4A/gScEL28Q3g9ux2SZIkqc+odI70BcCMlNIXCspviIgbgAuBf6tpZJIkSVITq3Rqx7uBuSW2/RQYXptwJEmSpN6h0ivS9wIfBe4usu2jwP/ULCJJm4xmus27JEm1VjKRjoj8v4D/Cvx7RLwb+DmwAhgJ/APwceBzPRijJEmS1HTKXZF+lMwdDHMCOCP7k7LPc+4ENq95dJIkSVKTKpdIH1K3KCRJkqRepmQinVK6r56BSJIkSb1JxbcIz4mIfsAWheXeLlySJEl9SaU3ZNkqIn4QEcvJ3Nnw9SI/kiRJUp9R6RXpWWSWuZsJPAOs76mAJEmSpN6g0kR6InBGSqm1J4ORJEmSeotK72z4LOAcaEmSJCmr0kT6XODrEbFzTwYjSZIk9RYVTe1IKd0REYcCz0TEUmB1kTofrG1okiRJUvOqKJGOiKuBs4HF+GVDSZIkqeIvG34OuDCldHl3OouInYD/C2wLbARmpJS+FxHDgVuAXYClwKdTSv/bnb4kSZKknlTpHOk1wEM16G8D8JWU0t8BBwBTImIscB6wIKW0B7Ag+1ySJElqWpUm0t8DTo+I6E5nKaXlKaXfZ39/HXgC2AE4BpidrTYbOLY7/UiSJEk9rdJEegSwP/BURMyIiKsKfq7sascRsQuwL/AAMCqltBwyyTYwssQ+p0fEgxHx4MqVK7vapYB5LUuq3re1tfwy4q2trZ3W6ar5Y2bWtL15LUuqGoNhq8YWbataa5dNYu2ySW3x5NpqbW1l7pD1zB2ynrXLJgEwd8jfvpJQGEdnMZQbv2LbKj2mXPzFVNLGvJYlzB8zs10M81qWtB17McNWjW13/KX6zx/bUnLtdPV8zW8z/zUrVOoYuquw//zn+WOTG9di51CptqD4sUyetbjsvoWGrRrb9hoUez0LPyeKtVXN61I4Hp2d38XO4cJzMl+5c7OYybMWtxu7/HZz/c4fM7NDu8XO60rHqHAM7lk3uux7tVyflbpn3WjuWTe6bJ1af35Wqzt/n7oab3f/1lYaa7GxVX1VOkf6eDLTMvoDhxXZnoBplXYaEVsCPwXOTim9VumF7pTSDGAGwLhx41Kl/UmSJEm1Vunyd7vWqsOI6E8mif5hSmlutviliNgupbQ8IrYDVtSqP0mSJKknVDq1oyayc6xvBJ5IKV2bt+l2IPd/S5OA2+oZlyRJktRVla4jfWZndVJKP6igqQ8D/wT8ISIeyZZdAFwBzImIyWRuR35CJXFJkiRJjVLpHOnrymzLzVXuNJFOKd0PlJoQPbHCWCRJkqSGq2hqR0pps8IfYDhwErAE8GujkiRJ6lMqvSLdQUppNXBLRGwF/BswoUYxSZIkSU2vFl82/AswrgbtSJIkSb1GtxLp7FJ1XyGTTEuSJEl9RqWrdqzkb18qzNkCGAq8BRxX47gkSZKkplbpHOkWOibSbwHPAXemlF6paVSSNgm52yIfVXbhH0lSrUxdMJXrJvqZWy+V3tlweg/HIUmSJPUqdb2zoSRJkrSpKHlFOiJ+2YV2UkrJG6pIkiSpzyg3taOSec/bAR+i4/xpSZIkaZNWMpFOKZ1QaltE7AxMAz4JvAx8p/ahSZIkSc2rS3c2jIjRwPnAycCK7O//llJa2wOxSZIkSU2r0nWk9wQuBE4AlgFfAm5KKa3vwdgkSZKkplV21Y6I2C8i5gL/D9gX+BywR0rpBpNoSZIk9WXlVu2YDxxOJok+MaV0a92ikiRJkppcuakdR2QfdwJaIqKlXEMppZE1i0qSJElqcuUS6W/ULQpJ6oPmtSzhqCl7NzoMSVKVyi1/ZyItSZIkleAtwiVJkqQqmEhLkiRJVTCRliRJkqpgIt1kWltb236fP2Ym88fM7LA9v049DVs1ttPtndXJKXcM81qWdCmuUvvmxqra9rq6X6ljmteyhHktS8oe89whmWXZOxu/XL1S/RRau2xS2fa60v7kWYs73Td//3ktS1i7bFLJGHLbcvuU6js3fsUUvkfy+yp3LLlt96wb3a6fnHLvs1w8uX47e81ybeXHOXnW4k7HszOF452v2JgXHlOxffOPpdi459rI7VvNe6uSz4n87V0dq1zcXT33gbLna1dU+hldTV+54ys2hsX+ZnRFpeNc7r3Vmfxzptx7u9i2UvWLlRUbh2Grxpbts9z7Ptfe/DEzy7ZRiVwfpdrIvUemLpjaYVuxvst9DjYqX+hLTKQlSZKkKphIS5IkSVUwkZYkSZKqYCItSZIkVcFEWpIkSaqCibQkSZJUBRNpSZIkqQom0pIkSVIVTKQlSZKkKphIS5IkSVUwkZakErpzG2BJ0qbPRFqSJEmqgom0JEmSVAUTaUmSJKkKJtKSJElSFUykJUmSpCqYSEuSJElVMJGWJEmSqmAiLUmSJFXBRFqSJEmqgom0JEmSVAUTaUlqkLlD1jc6BElSN5hIS5IkSVWoayIdETdFxIqIeDSvbHhE3B0RT2cft65nTJIkSVI16n1FehZwZEHZecCClNIewILsc0mSJKmp1TWRTin9D7CqoPgYYHb299nAsfWMSZIkSapGM8yRHpVSWg6QfRxZqmJEnB4RD0bEgytXrqxpEPNallRdv7W1tWbtLxq5qOS+81qWMGzVWIatGttu29QFU5m6YGrR+q2tre3imz9mJvNalnSIP1eW+5k8a3HZuAvb6ExhjIXHkK/UF7CKxV3OopGLio5nKbn2c3EWiyM3LpAZy3z5x1TMPetGdyibO2R9u34K2yyMrbBeZ69nMblxW7tsUslYa/EluPw2CmMpdZyF9Ss9x8odSy6Wzo4pt33yrMXcs2500dcLMrHPHzOzrc/8dvPPj5zce7azGMuZPGtx0bbzdXZ8uWMqNqbFXo/cceYr/PyZO2R9lz8LcnLjUe5c6KzdYu/VYnHnVHted/X48scoF0tXX/9i7+P838sdSzWvRy3bKIy7VKy516rw71Run668Xrk2ir1PcrF09rmTO79z9fKPIff65b+Ohcc5edbitjhysU9dMLVDvdxnS2fjUqyvwvN77pD1rF02ibXLJhV9zXLnYmefH91VSR5UrdznX7HzJKcW53y+XF+FuUsxzZBIVyylNCOlNC6lNG6bbbZpdDiSJEnqw5ohkX4pIrYDyD6uaHA8kiRJUqeaIZG+Hcj9/8Uk4LYGxiJJkiRVpN7L37UCvwHeFxHPRcRk4ArgsIh4Gjgs+1ySJElqav3q2VlK6aQSmybWMw5JkiSpu5phaockNbWe/Ea6JKn3MpGWJEmSqmAiLUmSJFXBRFqSJEmqgom0JEmSVAUTaUkqobNbCteKX2aUpN7JRFqSJEmqgom0JEmSVAUTaUmSJKkKJtKSJElSFUykJUmSpCqYSEuSJElVMJGWJEmSqmAiLUmSJFXBRFqSJEmqgom0JEmSVAUTaUnqxD3rRjc6BElSEzKRliRJkqpgIi1JkiRVwURakiRJqoKJtCRJklQFE2lJkiSpCv0aHUB3tLa2ctJJJ5XdDnRa56STTmL+mJkcxXXtts1rWcJRU/amtbWVYavGAnDUlL3bbQcYRmbb5FmLOe7NLdrVy7Uxd8h6XisST66Nwn0A1g6ZBMDcIes5Cpg/ZiZrl2XLZi3mxlPGZ+ply6YumMp1E69rqw+0xZ1v7pD17doYtmpsW1kxuXjy282ZnG1jXsuStjaK1YFJJdstbKuU+WNmZtvPvE7Fji1fblxyr+28liUd2si9/lMXTOXjnNZuv2Ix5pflXp/813j+gqltbdx4yngmz1rMoDGzMztm282MR/mYO5Ort3bZpLZjWrtsEkcBi0YuYm2RVSYKz9fOTM0eS7HXrpxi50lhWWfHmas/d8h6Bu2UGb+PP3lah3qVjldOV4+psP3892Clyr23cvLP5dz5lPsdgCF/ayv3WZA7n/LrVxpP7rUo9lkzt+38bH+c+e+RfLnzb+6sSWXfv/n958sfz8LPgPy6uW2TZy3m0AHPZPZd1/G1KHx9Mq95116zzmLOj6mz+l09X3KGrRrb4b0NfxtvirRbbV/FFHsfV6rcOVHs79mw7N/NnHktS9rO+ZzW1lYWjVmUedJyWrtzvtT7stjnd+G2/Pda29gWxFoo9/rmPpvyc4e293K2TmevSe4cOu7NLThqyt6Zvxk7la5f+Pe+s3jzywrP10E7zea6ide1y6Vynyf5nyud5VpQ/O9x/vu5K/lYfhyd9VGujWJxlKuXM69lCfcMyfwNHcSiTvv0irQkSZJUBRNpSZIkqQom0pIkSVIVTKQlSZKkKphIS5IkSVUwkZYkSZKqYCItSZIkVcFEWpIkSaqCibQkSZJUBRNpSZIkbRLmtSwpe1fLWjORliRJkqpgIi1JkiRVwURakiRJqoKJtCRJklQFE2lJkiSpCibSkiRJUhVMpCVJkqQqmEhLkiRJVTCRliRJkqpgIi1JkiRVwURakiRJqoKJtCRJklSFpkmkI+LIiHgqIp6JiPMaHY8kSZJUTlMk0hGxOdACfBwYC5wUEWMbG5UkSZJUWlMk0sAHgWdSSn9OKa0Hfgwc0+CYJEmSpJKaJZHeAViW9/y5bJkkSZLUlCKl1OgYiIgTgCNSSp/LPv8n4IMppbMK6p0OnJ59+j7gqboGuukaAbzc6CA2QY5r7TmmteeY1p5jWnuOac9wXCv3npTSNoWF/RoRSRHPATvlPd8ReKGwUkppBjCjXkH1FRHxYEppXKPj2NQ4rrXnmNaeY1p7jmntOaY9w3HtvmaZ2rEY2CMido2ILYATgdsbHJMkSZJUUlNckU4pbYiIqcB/A5sDN6WUHmtwWJIkSVJJTZFIA6SU7gDuaHQcfZTTZXqG41p7jmntOaa155jWnmPaMxzXbmqKLxtKkiRJvU2zzJGWJEmSehUT6T4oIpZGxB8i4pGIeDBbNjwi7o6Ip7OPWzc6zmYWETdFxIqIeDSvrOQYRsT5EfFMRDwVEUc0JurmVmJMp0fE89lz9ZGI+ETeNse0ExGxU0TcGxFPRMRjEfGlbLnnapXKjKnnajdExMCI+F1ELMmO6zey5Z6rVSozpp6rNeTUjj4oIpYC41JKL+eVXQWsSildERHnAVunlKY1KsZmFxEfAd4A/m9K6f3ZsqJjmL3dfSuZO3huD9wDvDel9E6Dwm9KJcZ0OvBGSunqgrqOaQUiYjtgu5TS7yNiKPAQcCxwCp6rVSkzpp/Gc7VqERHAkJTSGxHRH7gf+BJwHJ6rVSkzpkfiuVozXpFWzjHA7Ozvs8n8YVAJKaX/AVYVFJcaw2OAH6eU1qWU/gI8Q+aDSnlKjGkpjmkFUkrLU0q/z/7+OvAEmbvGeq5WqcyYluKYViBlvJF92j/7k/BcrVqZMS3FMa2CiXTflIC7IuKhyNwtEmBUSmk5ZP5QACMbFl3vVWoMdwCW5dV7jvJ/eNXe1Ij4f9mpH7n/1nVMuygidgH2BR7Ac7UmCsYUPFe7JSI2j4hHgBXA3Sklz9VuKjGm4LlaMybSfdOHU0p/D3wcmJL9L3X1nChS5pyqylwP7A7sAywHrsmWO6ZdEBFbAj8Fzk4pvVauapEyx7WIImPqudpNKaV3Ukr7kLm78Qcj4v1lqjuuFSgxpp6rNWQi3QellF7IPq4Afkbmv25eys79y80BXNG4CHutUmP4HLBTXr0dgRfqHFuvlFJ6KfuHYCMwk7/9N6NjWqHs3MifAj9MKc3NFnuudkOxMfVcrZ2U0mpgIZm5vJ6rNZA/pp6rtWUi3cdExJDsF2SIiCHA4cCjZG7JPilbbRJwW2Mi7NVKjeHtwIkRMSAidgX2AH7XgPh6ndwf0Kx/IHOugmNakeyXjW4EnkgpXZu3yXO1SqXG1HO1eyJim4h4V/b3QcChwJN4rlat1Jh6rtZW09zZUHUzCvhZ5m8B/YAfpZTujIjFwJyImAw8C5zQwBibXkS0AhOAERHxHHAJcAVFxjCl9FhEzAEeBzYAU/wWdEclxnRCROxD5r8XlwJngGPaBR8G/gn4Q3aeJMAFeK52R6kxPclztVu2A2ZHxOZkLvLNSSn9IiJ+g+dqtUqN6X96rtaOy99JkiRJVXBqhyRJklQFE2lJkiSpCibSkiRJUhVMpCVJkqQqmEhLkiRJVTCRlqQmFhHHRcQvI2J1RKyLiD9GxLciYkQ3250aES7bJEndYCItSU0qIq4BbgX+TGbt4sOB7wBHk7kjmSSpgbwhiyQ1oYg4GjgHmJxSuilv030RMYNMUi1JaiCvSEtSc/oy8PuCJBqAlNI7KaX5ABExIiJmR8QrEbEmIhZGxLj8+tlb/l6XnR6yKiK+A/QvbDcido2In0fEaxHxekT8V0SMLqiTIuJLEXFZRKyMiBUR0RIRA2p7+JLU/EykJanJRER/4EPAnRVU/zlwBPBV4DNkPtfvLUiArwA+B/wL8I/Ae4CvFPQ5AFgA/B1wGnAKsCuZK+DDC/r8CrA9cDLwbTK3GP5SpccnSZsKbxEuSU0mIrYFlgOfTyn9W5l6RwLzgQkppfuyZUOApcDclNIZEfFu4DlgekrpymydzYDHgfellCJb9nngOuC9KaU/Z8t2JDM/+5KU0uXZsgT8KqX0kbw4fg5sm1I6oHajIEnNzyvSktS8OrvS8UFgZS6JBkgpvQn8AjgoW/QBYCBwW16djfnP89r6fS6JztZ7DliU11bOXQXPHwd27CRWSdrkmEhLUvN5BVgH7NxJve2Al4qUvwTkpmNsm31cUVCn8HklbeWsLni+nkyyLkl9iom0JDWZlNLbZK4EH9FJ1eXAyCLlo4BV2d9fzD4W1it8XklbkqQ8JtKS1Jy+C4yLiEmFGyJis+z86AeAkRGRP195MHAUcH+26A/AW8Ax+fvnP896ANgvInbNq7cDmS893o8kqQPXkZakJpRS+q+IuBa4MSI+TGZO8xvAGODzwNKU0j9ExCLglog4j8yUkK8Cg8ispkFK6ZXsutPfiIgNwGNkVuXYsqDLWcA0YH5EXAy8A0wHXgZKfuFRkvoyE2lJalIppa9ExK+BqcCPyCTIS4Hbgauz1f4BuIbMFeyBwO+Aj6WUnslr6lwy60ZfDGwEbgauze6X62tdRByaLb8RCGAhcFxKyakdklSEy99JkiRJVXCOtCRJklQFE2lJkiSpCibSkiRJUhVMpCVJkqQqmEhLkiRJVTCRliRJkqpgIi1JkiRVwURakiRJqoKJtCRJklSF/x+6lrtHguySoAAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 864x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "pegg.lollipop_library(ranked_filtered, gene_name, start_end_cds,strand, plot=True);\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "fd820214",
   "metadata": {},
   "source": [
    "For a more informative visualization, we can add in the HGVSp information back to our dataframe, allowing us to visualize the precise amino acid changes that are included in our library:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 122,
   "id": "a7548087",
   "metadata": {},
   "outputs": [],
   "source": [
    "#adding HGVSp information back to the dataframe if it's available...\n",
    "hg = []\n",
    "for i, val in ranked_filtered.iterrows():\n",
    "    idx = val['mutant index']\n",
    "    hgvsp = library_input.loc[[idx]]['HGVSp'].values[0]\n",
    "    hg.append(hgvsp)\n",
    "    \n",
    "#also add in information for identifying neutral mutations\n",
    "class_mut = []\n",
    "for i, val in ranked_filtered.iterrows():\n",
    "    idx = val['mutant index']\n",
    "    neut = library_input.loc[[idx]]['classification'].values[0]\n",
    "    class_mut.append(neut)\n",
    "\n",
    "ranked_filtered['HGVSp']=hg\n",
    "ranked_filtered['classification']=class_mut\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 123,
   "id": "169d7cf3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABc4AAASJCAYAAADhWo9BAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAACSKElEQVR4nOzde7ztdV0n/tdbDqYx3lJUyBBNk6IJDRjz8lPwVgbZTc2OhiQjNoI5mpZdxRqbcfJSCVmHKGqMLE2tgawmR5CizOOFRhQnRwkvaF7wzhEOvn9/7HUO37Pce52999l7r8t5Ph+P72N/1/fy+b6/l/Vd67z48lnV3QEAAAAAAJbcatoFAAAAAADALBGcAwAAAADAgOAcAAAAAAAGBOcAAAAAADAgOAcAAAAAgAHBOQAAAAAADAjOAQAAAABgQHAOAABzpKourKpex3DNKtffXVUfrao/qqp/vwn1n1pVf11Vn6iqr1TVR6rqT6vqIRu9LQAAWC/BOQAAzJebVxh6P8vsXkVbX01ySJIjk2xP8vaq+sHxlarqjFHAPmm4dJn1zknyP5M8Jsldk9w6yTcmeUKSy6vquWs9GAAAsBkE5wAAMEe6+4zu3jY+JPnD0SL/utz87r7PWFOXLbPMIUm+Icnjk3w4ydcl+R9Vdfexde+bpYB90rBtuEJV/X9Jfmn08vdGbXxdkhOTXJGkkry0qr7zwI4QAAAcOME5AACwV3df391/lmTPk+aHJXnq2GLfPPp7cnfXCsNDx9Z5TpbC8YtH4f8HuvvG7t6Z5HuSXDuaf+bm7BkAAKye4BwAAPga3f2OJB8YvTxxbPae4PxfVtNWVX1dlsLxJPmdZbb1hSR/Mnp5/NoqBQCAjSc4BwAAVvJvo7+3H5t+7yRfTvKxVbZzjyS3HY2/c4Vl/nWFbQEAwJbbtv9FAACAg9TdRn8/tWdCVd0lyR2SXNndvexaX+vWSS4bjX96hWWOGP1dbRgPAACbxhPnAADA16iqE3JLlyyXD2btmfbBqjq7qt5eVZ8dDVdU1TOr6tBhW939vu4+aTR8ZZlt3TrJE5bZFgAATIUnzgEAgCRJVVWWnvw+JckvjyZ/MskfDRa79+jv9+eWHxDd40Gj4clV9X3d/ZkJ29qWpX+PfEeSFyf5ltG2XnmAuwEAAAdMcA4AAAenh1fV7rFplX3/r9Qbk5zW3Z8fTPvmwbK/laWg+0NJjkzyzCQ/leTBWfqxz0dP2P7Vg7aSpS5cHtHdn1zjfgAAwIbTVQsAABy8DhkbbpXk5iQfz1Lw/R+6+6/G1tmVpf7Kn93dZ3X31d39le7+UHc/P8l/Hi33qKp67IRtj4f2d07yhqr6lgPaIwAA2ACCcwAAODhd1t21zLCtu4/o7id195XjK3X3S0d9la/Upcq5ST4yGn/cShvv7mOSfH2S+yX5hSSfT3KfJJdU1SEHtGcAAHCABOcAAMCG6e6vJnn76OXR+1n2hu7+v9394iRPGk2+T5Lv2bwKAQBg/wTnAADAZrkpSarqP1TVD1TVAycs+1dJvjAaP2bTKwMAgAkE5wAAwKpU1bdX1V9V1Zuq6usnLLon+P5/o7/PTPKGJOettEJ3d5Ivj17efMDFAgDAARCcAwAAq/XJJI/JUlcqj1pugap6SJJvHb3869HfPX2lf3tV3WmF9e6X5G6jl/+8IdUCAMA6Cc4BAIBV6e5PJLl09PLlVfVNw/lV9Q1Z+nHQJHlPbgnOX5ulblu+LslLxn/8s6rukeR/jF7+vyRv3fDiAQBgDbZNuwAAAGCu/Ockf5fkm5O8t6rekOSaJHdP8oNJ7pKlLlfOGHW/ku7+SFX9apIXJnl6kv+vqv46yZey9GOgpyb5+iQ3Jvnx7t69lTsEAADjBOcAAMCqdfc/V9XDk1yQ5AFJfmxskfcmeXp3/9PY9Bcl6SQ/k6U+0Md/APTKJM/o7rdtfNUAALA2NXoIBAAAYE2q6oFJHpjk3yX5TJJ3JNnZE/6RMerO5eQkR2ep65ZPjtZ516YXDAAAqyQ4H6iqM5P8bJb6X/zPSa5O8ros/e+mr+vu506vOgAAAAAAtoKuWkaq6l5JnpXk3ye5a5Z+yOg9WeqH8eIkF1fVyd39lulVCQAAAADAZrvVtAuYIY9LcmF3f7G7P5jkSUmOT3Lx6H81fW2Sx0yzQAAAAAAANp/g/Bb3SXJUVb2tqt49en39oH/GjyW5+7SKAwAAAABga+iq5Ra3TXJkkocn+aYkVyZ532B+J7l5uRVHfaOfmSSHHXbY8cccc8zmVgrAzPrcv92wd/wOd73tFCsBAAAAJnnHO97xqe4+fLl5gvNbXJ/kHd29K8m/VNVVSb5zMP/IJNcut2J370iyI0lOOOGE3rlz52bXCsCMuuS8K/eOn3LWcVOsBAAAAJikqv51pXm6arnF/07yPVV1SFUdmeR2Sf6yqk6uqkOSPCXJJVOtEAAAAACATeeJ85HuflNVfVeSq5LckOQZWerX/DVJ7pylHw59xxRLBAAAAABgCwjOB7r7hUleODb5+GnUAgAAAADAdOiqBQAAAAAABgTnAAAAAAAwIDgHAAAAAIABfZwDAACwKS666KK949u3b59iJQAAa+OJcwAAAAAAGBCcAwAAAADAgOAcAAAAAAAGBOcAAAAAADAgOAcAAAAAgAHBOQAAAAAADAjOAQAAAABgQHAOAAAAAAADgnMAAAAAABgQnAMAAAAAwIDgHAAAAAAABrZNuwAAgNW65Lwr946fctZxU6xkNjgem2/PMXZ8YfG4hwIAk3jiHAAAAAAABgTnAAAAAAAwIDgHAAAAAIABwTkAAAAAAAwIzgEAAAAAYEBwDgAAAAAAA4JzAAAAAAAY2DbtAgAAAFhMd7j+2GmXAACwLp44BwAAAACAAcE5AAAAAAAMCM4BAAAAAGBAcA4AAAAAAAOCcwAAAAAAGBCcAwAAAADAgOAcAAAAAAAGBOcDVbWzqq4eDa+pqntX1Tur6tqqevm06wMAAAAAYPNtm3YBs6KqDkny+e4+YTDtDUlemOTiJBdX1cnd/ZZp1QgAAAAAwObzxPktjkxy3Z4XoyD9+CQXd3cneW2Sx0ypNgAAAAAAtojg/Bb3THJcVV1ZVW9L8tAk149C8yT5WJK7T606AAAAAAC2hK5abvGlJL+b5Lwk357kiiTvHczvJDcvt2JVnZnkzCQ56qijNrdKAFhAl5x35d7xU846boqVACxxX5pPzhsAsFE8cX6Lq5Oc2903dfe7krwnyfCb1pFJrl1uxe7e0d0ndPcJhx9++BaUCgAAAADAZlmo4LyqajB+XFWdWlW3X+Xqz07yktG635zk9kn+sqpOHvV3/pQkl2x0zQAAAAAAzJaF6Kqlqu6Y5I+S3JDk8VX141nqdqWSfKSqHtnd/7KfZs5NclFVfSDJ55KckeQTSV6T5M5JLuzud2zSLgAAAAAAMCMWIjhP8rIk35XkGaPXP5Pk4iQvTfI7SV6c5ImTGujuLyZ53DKzjt+4MgEAAAAAmHWL0lXLKUle3N2vq6p7JPmWJP+1uy9P8vIkD55qdQAAAAAAzI1FCc7vkGRPVywPSfKlJG8fvf5MEr/YCQAAAADAqixKcP6hJN8+Gt+e5PLuvnn0+qFZ6qscAAAAAAD2a1GC899O8sujH/Y8Ncn/qKpbVdWrkpyV5A1TrQ4AAAAAgLmxED8O2t2/WVU3JvnuJOd19x9X1a2T/GCWQvUXTLVAAAAAAADmxkIE50nS3b+dpZB8z+sbk9w9SarqkGnVBQAAAADAfFmUrlqWVVUPqKpfT/LRadcCAAAAAMB8WJgnzveoqiOSPCXJaUm+LUkled9UiwIAAAAAYG4sxBPnVXWbqtpeVX+V5Nok/y1L+/aiJN/e3cdOtUAAAAAAAObGXD9xXlUPz9KT5Y9Pcrsk1yf5oyQ/luQ/dfdbp1geAAAAAABzaG6D86r6YJJ7JrkxycVJXp3kL5MclqUwHQAAAAAA1mxug/MkR2cpNH9Rkld19+eSpKp6mkUBAAAAADDf5rmP86ckuTzJi5NcV1V/VFWPynzvEwAAAAAAUza3IXN3X9Tdj05yryT/PcmDkvx1kquSdJK7T7E8AAAAAADm1Dx31ZIk6e5rk5yT5JzRE+dPS/IDSf64qn4uS32fv6a7PzK1IgE4aLzpmPP3jp+Sc6dYyWJyfIHNdMl5V+4dd7/ZesPjP3TKWcdtcSVshosuumjv+Pbt2ycuO7wWnH8ApmVunzhfTnf/bXdvT3JEkmcluSlLT6N/aKqFAQAAAAAwNxYqON+juz/X3b/V3ScmOS7JK6ddEwAAAAAA82Huu2rZn+7+P0meO+06AAAAAACYD3MbnFfVn65h8e7uH9m0YgAAAAAAWBhzG5wn+Q9Jej/LHJbkLqtYDgAAAAAAksxxcN7dR0+aX1U/kuQ3knwlya9sRU0AAAAAAMy/hftx0Kq6R1X9RZKLkvxLkvt3969OuSwAAAAAAObEQgXnVXV2kquSnJTk2Uke1t3vn2pRAAAAAADMlbntqmWoqr4tye8m+a4kf53kGd197XSrAgAAAABgHs31E+dVdWhV/XKSdyb5liSnd/djheYAAAAAAKzX3D5xXlUPTbIjyf2SvDbJ2d39qelWBQAAAADAvJvb4DzJZaO/701ybZKfrqqVlu3u/pktqQoAAAAAgLk2z8H5npT82NEwSScRnAMAAAAAsF9zG5x391z3zw4AAAAAwGw6KMLnqprb/0AAAAAAAMDWmutAuaqOTvKUJEcm+XCSP+zuj1bV/ZI8KMmtR8OPJnnItOoEAACYZ5ecd+Xe8VPOOm6KlQAAbI25Dc6r6gFJLk1yu8Hk51XV2Ul+L0uB+Z5+0G9aQ7u3SnJFknOS/N8kr0tylySv6+7nHnDhAAAAAADMtHnuquVFST6X5OFJ/l2Sb09ydZJXJ7kuyQ8n+fdJjk5yhzW0++wk9x2NvyzJC5PcM8n9qurkjSgcAAAAAIDZNc/B+YOSvKi7L+/uL3f3e5M8N0tPmf98d7+xu6/q7mu7e9dqGqyqeyV5dJKLkxyS5PgkF3d3J3ltksdsyp4AAAAAADAz5rarliTfkOQjY9OuHv398DrbfGWS5yT52Sx1z3L9KDRPko9l6en2r1FVZyY5M0mOOuqodW4agGnSd+vmm3SM33TM+bfMy7krtnHDh5+68YUtiIsuumjv+Pbt2yce7/F5e1679r/W6w+7MUlyypTrYOu536zeZnyGrvZzYda3MTTt7xpbsf1J27jiblfsHd+e7RPbmXRu1vJ5t1rTPjcHwmc4wOaZ5yfOK0mPTds9+vvVNTdW9bQkb+vu948m9aC9Pa9vXm7d7t7R3Sd09wmHH374WjcNAAAAAMAMmecnzjfaSUm+q6qenOSIJI8cm39kkmu3uigAAAAAALbWPD9xvqG6+7Tu/pbuPibJG5I8Pck7qurkqjokyVOSXDLVIgEAAAAA2HTz/sT5T1XVkwavt2WpS5Wfq6p/G0zv7j5jHe0/P8lrktw5yYXd/Y71lwoAAAAAwDyY9+D80StM/96x151k1cF5d58+eHn8GmsCAAAAAGCOzW1w3t26mQEAAAAAYMMJnwEAAAAAYGBunzgfqqrTJszuJNcneU93X7M1FQEAAAAAMK8WIjhPcmGWAvIkqcH04bSuqjckeUp379rC2gAAAAAAmCOL0lXLg7P0VPnzkxyV5OuS3DvJr4ymf1+Sxyd5aJJzplMiAAAAAADzYFGeOP+1JL/V3S8fTLsmyTlVdViSn+vuh1TV0UmeleQFW18iAAAAAADzYFGeOP/OJO9cYd7fJ7n/aPxfkhy5FQUBAAAAADCfFiU4/0SSh60w74FJrhuNH5HkM1tSEQAAAAAAc2lRump5RZLfqKrbJnljko8nuVOSU5I8O8mvVtU3J/mlJP97WkUCAAAAADD7FiI47+5Xjvoy//kkz0jSo1mV5LVJXpzkEVl62vxnplIkAAAAAABzYSGC8yTp7v9WVecm+a4kd03y5STv7u5rkqSq/ld3HzfFEgEAAAAAmAMLE5yP7Omz/atJ/i7JIXtmdPdXp1IRAAAAAABzZVF+HDRV9YtZ6tv8b5L8UZJvSfKGqnpVVS3MfgIAAAAAsLkWIlCuqv+Y5Jwkv5fk1Cz1bZ4kv5vk9CQ/NZXCAAAAAACYO4vSVctPJjm3u589+pHQJEl3/15VHZPkx5P82tSqAxbaJedduXf8lLP8lMLBZhHP//g+bcU+3vDhp64476KLLhq8uu+mbH+1hrVs3759S7Y5PP5D4+fiDtcfuxXl7GOWrv+11HLGhW/fO37B6SduWk2zYtL+ztI5nIat2P95ut7We497/WE33vJiP8d0zzHfrOM9rOWU/Sw76bNnK0z72ljv9T9pvTcdc/4t83LuPsvecNjGHO/xz7u1XH8cuIP9cwM4uCzEE+dZ+lf0m1eY9w9Jjt66UgAAAAAAmGeLEpx/Isn9Vph31yRf2MJaAAAAAACYY4sSnP9xkp+rqpMH07qqjspS/+avn05ZAAAAAADMm0Xp4/ycJMcn+dsknxlNe02SuyV5X5IXTKcsAAAAAADmzUIE5939lar67iRPSHJqkrsn+WyStyT5/e7eNcXyAAAAAACYIwsRnCdJd3eSPx0NAAAAAACwLovSx3mq6kFV9ZdV9Zmq2lVV/1pVf1hV3zrt2gAAAAAAmB8L8cR5VT0iyV9lqX/zS5Jcn+QeSX4oyQ9U1cO7+11TLBEAAOCg86Zjzt87fkrOnWIlAABrsxDBeZKXJHl7ksd095f2TKyquya5dDT/MdMpDQAAAACAebIoXbV8e5LfHIbmSdLd/5bk15I8cCpVAQAAAAAwdxYlOL82yaErzPtKki9sYS0AAAAAAMyxRQnOfy3J80dds+xVVbdP8uwk502lKgAAAAAA5s6i9HH+kCTfmORDVfX3ST6a5PZJTkpymyTXVtWfjpbt7v6RqVQJAAAAAMDMW5Tg/KQsdcfyhST3HQ1J8vnRcMJg2d7SygAAAAAAmCsLEZx3972mXQMAAAAAAIthIYJzAAAANs/rD7tx7/gpU6wDAGCrLMqPgx6wqrpdVf3Pqnp/Vb2zqo6vqnuPxq+tqpdPu0YAAAAAADaf4PwWz03yj919vyS/kORFSV6W5IVJ7pnkflV18hTrAwAAAABgCwjOb/E3SX53NH7HLP3Q6PFJLu7uTvLaJI+ZTmkAAAAAAGyVue3jvKq+Kcm/dfdXquqoJJ/o7q+st73u/odRu+9KclySH03ybaPQPEk+luThK9RyZpIzk+Soo45abwnAHLnooov2jt8hx06xEmbZJedduXf8lLOOm2IlB+ZNx5y/d/z1Fz517/gFp5/4NcvueW9s3759w7b/5hvvu2FtrWTSuRrO24r3+3gtw+P/2Kufvup2huudknNXPY/ZtRn3FNfC6q32PjHP9/s7XL/x97gbPvzUfV7vueZOybkTj9v4ekPD72Fr/bzZs82NPE9nv/nsveMP/sSD945v3759n32cRm2TbNT7f7iPNxy2/PlOkkw4p+Mmnf9J/e2vd5/G21yU9zS3OJD7BnDwmucnzj+Q5FGj8Q8ledhGNNrdD0hycpL/lmT3cFaSm1dYZ0d3n9DdJxx++OEbUQYAAAAAAFMyt0+cJ/lokpdW1Y8kqSTPq6ofXWHZ7u4zJjVWVa9I8rLu/kh3X1ZVt0lyl8EiRya5diMKBwAAAABgds1zcP5LSV6c5LFZehr8gUluWmHZXmH60CFJnpjk5VX1oCQfTPLJ0Q+CvjXJU5K84ECLBgAAAABgts1tcN7dr07y6iSpqq8meWJ3/80BNPniJBdV1U8k+VSSpye5Mclrktw5yYXd/Y4DqxoAAAAAgFk3t8H5mHsl+fiBNNDdn0jyyGVmHX8g7QIAAAAAMF/m+cdB9+ruf01yRFX9blVdXVUfqap/qqoXVdUdp10fAAAAAADzYyGC86q6d5KdSZ6Upb7JL09yc5JfSHJlVX3TFMsDAAAAAGCOLEpXLb+a5KNJHtHdn94zsarum+QvRvN/bEq1AQBrcPabz947fu4jz92wdi+66KIkyfbt2zesTQAAABbTQjxxnuTRSV4xDM2TpLv/JcmvJXnMVKoCAAAAAGDuLEpwftskN6ww74tJ7rCFtQAAAAAAMMcWJTh/T5IfXmHeKUmu2bpSAAAAAACYZ4vSx/lLkry2qv5nkt9L8q9JDk/y5NHwnCnWBgAAAADAHFmI4Ly7/6yqzkzy37P0hHknqSQ3JXlJd//mNOsDAAAAAGB+LERwniTd/btV9UdJvivJEUk+n+Qfu/tT060MAAAAAIB5sjDBeZJ09w1J3jLtOgAAAAAAmF+L8uOgAAAAAACwIQTnAAAAAAAwIDgHAAAAAICBuQ/Oq2pbVX1HVd1u2rUAAAAAADD/5v7HQbt7d1X9fZKnJnn9tOthcV1y3pV7x08567gpVsIsuMP1x067hLlw0UUX7R3fvn37FCvZvzcdc/7e8VNy7qZvb/zYbMY9ZqPavOHDT131spPeG68/7MZb6ll3NfvaqH3ciNoOpJbh9fDmw+676lqG1+3Q/q7htZzTSe/jzTin6zWplrWcm0X5vB+et+S++8wb7mOOyYrz5nn/JxkemyuOuWLv+P7eN5Ousa3+DJll+zsWk+4/w2M8yfhnzRkXvn2V1d2yjbXes/Z53wycctZx++zTFd/0B3vHt2dt3332HLvNuobGr+H1fBZs3779a87xpPM2aRtnv/nsvePnPnJj9nl8e5PuaZPuk2v5fBseGzbfej+nDrZ/vw3vixecfuKa1h1e0wfD9wKYZO6fOB/58yQ/Mu0iAAAAAACYf3P/xPnIpUn+W1W9JclfJvnS+ALd/VtbXRQAAAAAAPNnUYLzHaO/Dx8N4zqJ4BwAAAAAgP1alOD8XtMuAAAAAACAxbAQwXl3/+u0awAAAAAAYDEsyo+Dpqq+taouqqqPVNUNVfWgqjq3qh467doAAAAAAJgfCxGcV9W/T/JPSR6R5LIkt05SSe6a5G+F5wAAAAAArNZCBOdJfjXJe5LcO8kzshSaJ8mTklye5JzplAUAzIo7XH9s7nD9sdMuAwAAgDmwKMH5w5K8sru/nKT3TOzuryb5wyTHT6swAAAAAADmy6IE552V9+XGLHXdAgAAAAAA+7Uowflbk5xVVYcOpu158vwHstT/OQAAAAAA7Ne2aRewQX42yRVJrkpySZZC89Oq6oVJTsrSj4YCAAAAAMB+LcQT5919VZIHJflAkmdm6cdBz0xypyTf3d1XTLE8AAAAAADmyKI8cZ7ufm+S762qWye5S5LPd/cXp1wWAAAAAABzZmGC81Fg/sNJTkhyWJKPVtXfdPfbplsZAAAAAADzZCGC86q6e5L/neSYLPVv/qUk/y7JOVX1hiRP6e5dUywRAAAAAIA5sRB9nCd5eZJ7JnlaksO6+/ZJ7pjkJ5OckuS/7q+BqrpVVf1+VV1bVVdW1UOq6t5V9c7RtJdv5g4AAAAAADAbFiU4/54kv9zdF+55sry7P9/d5yX51SQ/uoo2fjDJN2QpgP/RJK9K8rIkLxxNu19VnbwZxQMAAAAAMDsWJTg/NMkHV5j3f7LUbcv+3D3JH/SS9yY5PEv9pV/c3Z3ktUkesxHFAgAAAAAwuxaij/Mkf5XkB7IUbo97ZJK/218Do6fTkyRV9fQkn01y4yg0T5KPJXn4cutW1ZlJzkySo446ag1lw+a45Lwr946fctZxW779iy66aO/49u3bp97OZnvTMefvHT8l506xkv3b6mvjDtcfu+plp33d3vDhp65Yy/jrPdfm9u3b8/rDbrxl3lg74/OGJh2bjToW670217LeZpy34TFcqz31HEgt4/s0PB6PvfrpKy476Xzvzz7Xw6CdZP3HY3y99R6bYW1bcV+edE2t9F5cct8V2zyQczNtk87bpHmTrqnhNT1+nazlWK2mtiT53J2u2ju+v+vmjAvfvnf8gtNPXPf2Jxkemxtu3Pe6ef3YsVrJ/t4Lq61tGu+pSbWt9v4/6X26lnvWej+ntuI9PelanFT3+P6v9H5bru7VHru1fPau9j45bHe5Nt88eq9sX0Od+7NR7azXm2+cfDxWa7Xfd6f9XXcaht+Zp2Ejvheupv3N3MYkm/UZspZ/w8Gim9vgvKoeNnj550l2VNUfJrkoyXVJ7prk8aPhtFW2eViSX0/yoCRPzVJ3LXt0kpuXW6+7dyTZkSQnnHBCL7cMAAAAAADzYW6D8ySXZinM3qOSPGU09Oj1Hn+R5JBJjVXV1ye5PMllWeqi5aYkdx4scmSSaw+0aAAAAAAAZts8B+cb/UOdP5Hk77r7OXsmVNW7Rz8I+tYsBfIv2OBtAgAAAAAwY+Y2OO/uyza4yeOTPKyqhj8A+n1JXpOlJ88v7O53bPA2AQAAAACYMXMbnI+rqqcm+f+S3C77dtOSJN3dPzJp/e5+8gqzjt+A8gAAAAAAmBMLEZxX1W8keVaSzyT5wjKL+MFOAAAAAABWZSGC8yz1P/7K7n72tAsBAAAAAGC+LUpwfuskG93nOQCwQN50zPlJklNy7pQrAQCA+Xb2m8/eO37uI32/ZjHdatoFbJC/SfKD0y4CAAAAAID5tyhPnJ+V5MqqujzJFUm+NDa/u/tXtr4sAAAAAADmzaIE589IcvhoeMgy8zuJ4BwAAAAAgP1alK5anpnkz5IcleR2ywy3n15pAAAAAADMk0V54vzrkrymuz8y7UIAAAAAAJhvi/LE+RuSPGraRQAAAAAAMP8W5Ynzv0pyblXdOsn/SvL58QW6+y+3vCoAAAAAAObOogTnfzz6++OjYY9OUqO/h2x1UQAALK5Lzrty7/gpZx03xUoAAICNtijB+cnTLgAAAAAAgMWwEMF5d1827RoAAAAAAFgMCxGcV9Uz97NId/ertqQYAAAAAADm2kIE50nOXWF6D8YF5+zXRRddtHd8+/bt+8x70zHn7x0/ZcVLbv/tHAzucP2xM9XO0HrPzbT7sZ20/fF92upat2J7G3Xe1tvO6w+78ZZ2sjHX5niba7Fnv/Z3vG/48FPXWtaarXc/zrjw7XvHLzj9xE3Z/vj5X+/xGK43vr3h67VY7/tm0mfR/vZvT61rvd722ccb77t3dPwdtJb71FoM2x3f/33ei+s8F8P6tm/fPvEYb9R1u1HWe07X8l4YHpv1bn/SPXMt74Xx62i4/a3+7NuK7zpbcb1t1H1yvbZ6e/sz6Xpfr63ex/Fzupb75J773/7+rbMZNut6P5DvWxtheD4mzVvLfWst66122bW0uZZ/Fw+vv/Xu74F8hxhe0+N1r/b79GYZ3m/We2zGP0POfvPZg1eT7z2r3f/1fvc82DMRFseiBOf3Gnt9qyTfkKW+z5+d5Ee3vCIAAAAAAObSQgTn3f2vy0z+UJJ3VNUHkvxK/IAoAAAAAACrcKtpF7AF3pbkhGkXAQAAAADAfDgYgvMfSnLDtIsAAAAAAGA+LERXLVX1TyvMunuSb0zyW1tYDgAAAAAAc2whgvMkX07Sy0x/d5LfGA0AAAAAALBfCxGcd/dJ064BAAAAAIDFsBDBOQAA8+OS867cO37KWcdNsRIAAIDlzW1wXlWfzPLdsyynu/tum1kPAAAAAACLYW6D8ySXZP/B+QOTHJPkq5tfDgAAAAAAi2Bug/PuPn2leVV1+yQvSXK/JO9P8h+3qCwAAAAAAObcraZdwEarqu9PclWSp2UpPL9/d//9dKsCAAAAAGBezO0T5+Oq6u5Jzk3yg0neneT7uvvd06wJAAAAAID5sxBPnFfV05O8N8n3Jvn5JP9BaA4AAAAAwHrM9RPnVXXfJOcneViSy5P8x+7+l+lWBQAAAADAPJvb4Lyqfj5LT5ffmOSZ3f3bUy4JAICDyOsPu3Hv+ClTrAMAANh4cxucJ/mVJJ3k35I8raqeNmHZ7u4Hrrbh0Q+MPqi7X1BV907yuiR3SfK67n7ugRQNAAAAAMBsm+c+zt86Gj6U5Ev7Gb68mgZrySuS7BhMflmSFya5Z5L7VdXJG7UDAAAAAADMnrl94ry7T9qkpt+8Z6SqDklyfJIf6u6uqtcmeUySt2zStgEAAAAAmLK5Dc43Q3d3kour6i5JjslS9yzXj6YnyceSPHx8vao6M8mZSXLUUUdtUbXrd8l5V+4dP+Ws47Z8GxdddNHe8e3bt2/KNtbrirtdsXd8eybXNr79Pa9POeu43OH6Y1e93tlvPnvv63Mfee6Kyw6dctZxE4/jm445/5Zlc+4+tY0btjOse7hPyb79uF5w+onrPv5bcf1NOqZrOTdD6+3Hdn/7u+f4H8h7YS3X7XpNum5vOOypt8zbTztnXPj2veMXnH7iPvPGr9uhSedtLd584333jk86Uvs733tqHa9zf/Z5Tx+2fJvjhu/hZP/31Env90mG7dxw41MnLDnZnmM3C/09TzqPk47ppGtxLSZ9TmyUGz68/nM1tBHnbfx4D9/vyeree8sZno/x/R1uc9y+259seI/ZqGO6XpPuk2sx6disxZ775vas7TN8eN4ee/XTV7Xc/t5vkz4Lxq+/zXi/TTJ+3WzG58Ra7PmcPveR5068F673fjeN/v036thMMukam3Qv2gwrfb4vZ9K89d4LtuI7+1ps9Xt6Ldtf72fo8Jr63EUP3ju+v38XbMX7b3j9Db8/7+9zafy6We+9cGj8fbnPd+bzbvl8We7cDN+rk963k6738c/lfY7NYbccm1Pytf8OnXTdDD9f13tOx+/ha9nHSedmeE2Pt7nae/H4eduo7zfTthH/fp+2Sdf0WvZr1j4nJhnu4zA/Gc+LljPPXbVshU6ye+z1zV+zUPeO7j6hu084/PDDt6w4AAAAAAA2nuB8sk8nufPg9ZFJrp1SLQAAAAAAbAHB+QTdfXOSd1fVyaP+zp+S5JIplwUAAAAAwCbSx/n+PT/Ja7L05PmF3f2OKdcDALBQFqG/SAAAYLEIzpfR3RcOxv8lyfHTqwYAAAAAgK2kqxYAAAAAABgQnAMAAAAAwICuWgAA2FJvOub8veOn5NwpVrJx9vTTnuirHQAAFoEnzgEAAAAAYEBwDgAAAAAAA4JzAAAAAAAYEJwDAAAAAMCA4BwAAAAAAAYE5wAAAAAAMCA4BwAAAACAgW3TLgAAgIPbm2+8b5Jk+5TrAAAA2MMT5wAAAAAAMCA4BwAAAACAAcE5AAAAAAAM6ON8k1x00UV7x7dvX3+PnZvRzhXHXLF3/JScO3G9S8678pZlzzpubzvbt2//mnmrbecOOXafeWdc+Pa94z/0pVtPbHNPO6ecdVxef9iNg/3IPrWttpZTzjpun9c5ZuVlbzjsqfvMG9/+m445fzR+7tfM22cfc8s+JskNH76l3bPffPbe8XMfuW87w2OTJHe4ft/jOMmedsZrueD0E/dpZ7zu4etJxo/peDuT7KnngtNPXHc74/s0PKb7M7ymJrW7Xnuui2T599tazuNKxvd3uM2c9/Rbtn/WcRPrGb/f7Lkez33k19Y96Rjv856aYPx8j7c56f0+rG38/A9f3/aYPxist+9+jK+3Fmu5xjaizfHzNnxPX3G3W+7p27N9n3mTjB//fa7FVb7392f8nrYVVrv/k+4vG3V+V7qnDj8zll6v/thsxrU3bivO21qu963Y59VeN5NMup9P+s60v+9Tq71u1vK9bL0mvW8m3dMnfS9KVj6/B3ItDr+XHcj9fiX7+44y6bqd9L1w0nevlb6XXHD6iV/zGb7a982k5aZxD59ktd9Lx63l/E+6F2zFvWho/J4yfP8Paxmvdb2fL+PtzpqNuE8fiPXeU4bX7W2/ad/vpcPjfYexf+sNreX+Pn4vmPTvgqHx62bPb4+sxqR/T61mveXWHc6bdE2v5d+d49b7vWzSd+aNeg9Nykj2+bfON61/G5NyiElWey+edG4m/fvtgtNP3OffepMysUnZzvg1tVHZ2mr//T7pPrEVeeFa7hsbkUkM69nfPq3lHrreYzW+/8N72m1zxXKrrMgT5wAAAAAAMCA4BwAAAACAAcE5AAAAAAAMCM4BAAAAAGBAcA4AAAAAAAOCcwAAAAAAGBCcAwAAAADAwLZpFwAAAAAAwPy75Lwr946fctZxU6zkwHniHAAAAAAABgTnAAAAAAAwIDgHAAAAAIABwTkAAAAAAAwIzgEAAAAAYEBwDgAAAAAAA4JzAAAAAAAYEJwDAAAAAMCA4Hw/asmrqupfq+ofq+oe064JAAAAAIDNIzjfv8clOTzJ0UlekeTFU60GAAAAAIBNJTjfv+9N8gfd3UnekOSk6ZYDAAAAAMBmqqU8mJVU1ZuS/Fx3v2v0+iNJjururw6WOTPJmaOX90vy/i0v9GvdJcmnpl3EyCzVksxWPbNUSzJb9cxSLcls1TNLtSSzVc8s1ZLMVj2zVEsyW/XMUi3JbNUzS7Uks1XPLNWSzFY9s1RLMlv1zFItyWzVM0u1JLNVzyzVksxWPbNUSzJb9cxSLcls1TNLtSSzVc8s1ZLMVj2zVEsyW/XMUi3J2uu5Z3cfvtyMbRtTz0LrJLsHr3cPQ/Mk6e4dSXZsaVX7UVU7u/uEadeRzFYtyWzVM0u1JLNVzyzVksxWPbNUSzJb9cxSLcls1TNLtSSzVc8s1ZLMVj2zVEsyW/XMUi3JbNUzS7Uks1XPLNWSzFY9s1RLMlv1zFItyWzVM0u1JLNVzyzVksxWPbNUSzJb9cxSLcls1TNLtSSzVc8s1ZJsbD26atm/jyY5Mkmq6tAku6ZbDgAAAAAAm0lwvn+XJNk+Gt+e5H9NsRYAAAAAADaZrlr278+TnFpVH0zy4SQ/POV6VmuWuo6ZpVqS2apnlmpJZqueWaolma16ZqmWZLbqmaVaktmqZ5ZqSWarnlmqJZmtemaplmS26pmlWpLZqmeWaklmq55ZqiWZrXpmqZZktuqZpVqS2apnlmpJZqueWaolma16ZqmWZLbqmaVaktmqZ5ZqSWarnlmqJdnAevw4KAAAAAAADOiqBQAAAAAABgTnAAAAAAAwIDgHAAAAAIABwTkAAAAAAAxsm3YBC8ivrQIAAAAAzL5aaYbgfIPt2j3tCgBgY1x81XV7x0899ohVLbe/ZefJavd/M7a3Udtc1HMzdDDsIzAbNup+s9WfL9Ow3n1chM9eFoNrAw4et5mQjuuqBQAAAAAABgTnAAAAAAAwIDgHAAAAAIABwTkAAAAAAAwIzgEAAAAAYEBwDgAAAAAAA4JzAAAAAAAYWLjgvKoOqarrqurmqvrGsXnXVNWFq2znpVXVVfWCTSkUAAAAAICZtHDBeZLvTnL3JJ3kSetpoKoOSbI9ye4kT9640gAAAAAAmHWLGJyfluSfkrw16w+9H53kiCQvTfLtVfUdG1QbAAAAAAAzbqGC86q6fZLHJXldkjcmeUBVfes6mjotyXuT/Fo8dQ4AAAAAcFBZqOA8yROT3Da3BOfJGkPvqrpdkh9I8tru/kySy5P8aFXVxpUJAAAAAMCsWrTg/LQkO7v7Q919bZJ3Zamv8rV4QpbC99eOXr8xyTcledhGFQkAAAAAwOxamOC8qu6V5KFZetp8jzcmuVdVPXgNTT01ydXdfdWgjUR3LQAAAAAAB4WFCc6z9LR5JfnVqtpdVbuTvHA0b1Whd1XdM8n/l+R+gzY+OJr9+Kq69QrrnVlVO6tq5wXn7ziwvQAAAAAAYKq2TbuADfSUJG9NctbY9POSPLGqnr2KNk5L0kkekeTTg+mPTvLyJN+bW55A36u7dyTZkSS7dqfXWjgAAAAAALNjIYLzqnpIkvsk+dnufs/YvB1JXp3ku0eTjqiqRy3TzGVJfizJm7r7srE2/l+Sc7L05PobN7R4AAAAAABmykIE51l6UvzjSf58mXmvT/K53NJdy2NGw7iHJblvkueOz+juG6rqNUlOq6rbd/fnN6RqAAAAAABmzkIE5939jCTPWGHeDUnuuMqmaj3bAAAAAABgcSzSj4MCAAAAAMABE5wDAAAAAMCA4BwAAAAAAAYE5wAAAAAAMCA4BwAAAACAAcE5AAAAAAAMCM4BAAAAAGBAcA4AAAAAAAOCcwAAAAAAGKjunnYNi8YBBQAAAACYfbXSDE+cAwAAAADAwLZpF7Bodu2edgUwHy6+6rq946cee8QUK4FbDK/LZP3X5ka1M20b9T6d1M74sRoaLrtZx3S9+7gZ97DVHotF8f6PfWGf1/c78nabvs1pX2+TuKama3isfuz0F+8z7/q3n7vmNhLHeC33/vW+/2b5++S033/D7b/0Tf93n3mXPu/hm779lWpJ5vecAkt83rEIhtfx449b+Rr2xDkAAAAAAAwIzgEAAAAAYEBwDgAAAAAAA4JzAAAAAAAYEJwDAAAAAMCA4BwAAAAAAAYE5wAAAAAAMDD3wXlVHVJV11XVzVX1jWPzLqyqHhtuqqoPVdV/rapbjy3/76rqRVX1/qraVVWfrKq/qaof3Nq9AgAAAABgWuY+OE/y3UnunqSTPGmZ+R9Ncq/B8K1Jfi3J85Ocs2ehqrpDkr9L8mNJfjnJcUkel+T/JHldVf3cpu0BAAAAAAAzY9u0C9gApyX5pyRfSvLkJC8bm7+7u68Zm/aB0VPk35dkTyD+8iR3TfKA7v7EYNl/qKrPJ3lhVZ3f3Z/c6B0AAAAAAGB2zPUT51V1+yw9Ff66JG9M8oCq+tZVrn5DkptG7dwpSwH8y8ZC8z1+I0uhfB1ozQAAAAAAzLa5Ds6TPDHJbXNLcJ4sBdwrqqptVXVKkkcn+YPR5BOz9PT9W5dbp7s/292v6+5/24iiAQAAAACYXfMenJ+WZGd3f6i7r03yriTbx5a55+iHPndV1a4kX0lycZK/T/Kbo2UOH/397J6Vquphw/VGwws2dW8AAAAAAJi6uQ3Oq+peSR6apafN93hjkntV1YMH0z6W5P6D4QFJXpjkkUnOHi3zxdHfuw3W2zm23heyQp/wVXVmVe2sqp0XnL9jXfsDAAAAAMBsmOcfBz0tS32O/2pVvXg0bU8f5E9OcsVo/Kbuvnps3X+uqjOSPCjJK5NcOZp+YpK/S5Lu/nKSq5Okqm6X5E4rFdLdO5LsSJJdu9MHsE8AAAAAAEzZ3D5xnuQpWeqT/Ljc8lT4caNpT6yq/f1HgQ8nuXWSdPc1o/V+sqq+fpllz05yyEYUDQAAAADAbJvLJ86r6iFJ7pPkZ7v7PWPzdiR5dZLv3k8zX8goOB/5iSw9pf6W0RPsVyc5IktPr/9Akg9tSPEAAAAAAMy0eX3i/LQkH0/y58vMe32Sz2Up8J7kk0keXFVHJEl3vy9L/Z9fleR3krwnyUVJvi7JdyV5w4ZUDgAAAADATJvLJ867+xlJnrHCvBuS3HEVbZy2zLRrkjxthVV+avUVAgAAAAAwr+b1iXMAAAAAANgUgnMAAAAAABgQnAMAAAAAwIDgHAAAAAAABgTnAAAAAAAwIDgHAAAAAIABwTkAAAAAAAwIzgEAAAAAYKC6e9o1LBoHFAAAAABg9tVKMzxxDgAAAAAAA9umXcCi2bV72hUAcLC7+Krr9nl96rFHTKmS/TvppZftHb/0eQ/f8Pbn6Vis11bs4/g2Nnt707Yo182k/ZjXfZzG9b7ebczyMV7Le3q47Frmzau1nLeNuDfO8nUy6xbx+uPATXpfJq4V4GvdZkI67olzAAAAAAAYEJwDAAAAAMCA4BwAAAAAAAYE5wAAAAAAMCA4BwAAAACAAcE5AAAAAAAMCM4BAAAAAGBgYYLzqjqkqq6rqpur6huXmf/Yqrq8qj5dVZ+tqn+sqjOq6laDZS6tqq6qhy2z/u9W1aWbvBsAAAAAAEzZwgTnSb47yd2TdJInDWdU1fcmeWOS1yc5Ocmjk7whySuT/Poybb2qqg7dxFoBAAAAAJhRixScn5bkn5K8NcmTx+b9ZJILu/sV3f3P3f327n5Jkl9O8vSqOmSw7BVJ7pPkuVtRNAAAAAAAs2UhgvOqun2SxyV5XZaeLH9AVX3rYJEjk9xz2C3LyPlJvi9JDaa9L8mvJfmlqjpq04oGAAAAAGAmLURwnuSJSW6bW4LzZN+nzv8kS125vK+qXl5VP1xV39jdn+7uv+3u3WPt/Zck1yX5zU2uGwAAAACAGbMowflpSXZ294e6+9ok70qyfc/M7n5xkickeX+SM7IUsH+kqt5ZVY8Yb6y7dyV5ZpLvr6rv24odAAAAAABgNsx9cF5V90ry0CyF4Xu8Mcm9qurBeyZ09+u6+3FJ7pTk2CTPSXLHJJdU1T3G2+3uv0nymiSvrKqv308NZ1bVzqraecH5Ow5wjwAAAAAAmKZt0y5gA5yWpT7Kf7WqXjyatqfP8idX1SeT/EqS/9zdH+/uryZ5b5L3VtUbk3woyUOy1J3LuOckuTrJL04qoLt3JNmRJLt2pw9sdwAAAAAAmKa5f+I8yVOSvDXJcUnuPxqOG017YpLrkzw+S32cj7th9PczyzXc3R9P8rNJfirJty63DAAAAAAAi2WunzivqockuU+Sn+3u94zN25Hk1UkemOQVWepy5U5J3pylJ9KPTfK8JFcmuXTCZn4nyVOTPDjJZRu8CwAAAAAAzJi5Ds6z1E3Lx5P8+TLzXp/kc0mePBremeRZWep25dAkH0zyp0nO7e6bVtpAd3+1qp6RZOfGlg4AAAAAwCya6+C8u5+R5BkrzLshSz/+uccfj4ZJ7Z20wvQrsxS2AwAAAACw4Bahj3MAAAAAANgwgnMAAAAAABgQnAMAAAAAwIDgHAAAAAAABgTnAAAAAAAwIDgHAAAAAIABwTkAAAAAAAwIzgEAAAAAYEBwDgAAAAAAA9Xd065h0TigAAAAAACzr1aa4YlzAAAAAAAY2DbtAhbNrt3TrgCAtbj4quv2jp967BGrnnewGR6LxPGYtq24Nmf5vbEZ2x+/xifZjH3ein3yvt1a6z3+J730sn1eX/q8hx9wmwdite+NSbVsVN2Tapmn63va99CtMMufIZMM33/D9x6wPrP8foc9bjMhHffEOQAAAAAADAjOAQAAAABgQHAOAAAAAAADgnMAAAAAABgQnAMAAAAAwIDgHAAAAAAABhYmOK+qQ6rquqq6uaq+cZn5j62qy6vq01X12ar6x6o6o6puNVjmwqrqseHzVfW3VfUdW7tHAAAAAABMw8IE50m+O8ndk3SSJw1nVNX3JnljktcnOTnJo5O8Ickrk/z6WDsfTXKvwfA9Se6Q5E1VdftNqx4AAAAAgJmwbdoFbKDTkvxTki8leXKSlw3m/WSSC7v7FYNpb6+qSvLCqnpOd988mr67u68ZLHdNVT03yVuTPCjJX2/WDgAAAAAAMH0L8cT56EnwxyV5XZaeLH9AVX3rYJEjk9xz2C3LyPlJvi9J7WcTXxr9PfTAqwUAAAAAYJYtRHCe5IlJbptbgvNk6anzPf4kS125vK+qXl5VP1xV39jdn+7uv+3u3Ss1XFVHJHlhks8muWIzigcAAAAAYHYsSnB+WpKd3f2h7r42ybuSbN8zs7tfnOQJSd6f5IwsBewfqap3VtUjxtq6Z1XtGg1fSfKxJP8hyZO6+zNbsTMAAAAAAEzP3AfnVXWvJA/NUhi+xxuT3KuqHrxnQne/rrsfl+ROSY5N8pwkd0xySVXdY7Dux5LcfzQcl+Qe3X1Ed+vbHAAAAADgIDD3wXmWnjavJL9aVburaneWulZJkidX1X2r6jVVdfck6e6vdvd7u/vXkzwiyW2SPGTQ3k3dffVg+Oj+CqiqM6tqZ1XtvOD8HRu6cwAAAAAAbK1t0y5gAzwlyVuTnDU2/bws9X3+wiSPT/KmJH8wtswNo78H1AVLd+9IsiNJdu1OH0hbAAAAAABM11wH51X1kCT3SfKz3f2esXk7krw6yQOTvCLJK6vqTknenKUn1I9N8rwkVya5dAvLBgAAAABghs11cJ6lblo+nuTPl5n3+iSfS/Lk0fDOJM9K8otJDk3ywSR/muTc7r5pS6oFAAAAAGDmzXVw3t3PSPKMFebdkKUf/9zjj0fDpPZO36jaAAAAAACYT4vw46AAAAAAALBhBOcAAAAAADAgOAcAAAAAgAHBOQAAAAAADAjOAQAAAABgQHAOAAAAAAADgnMAAAAAABgQnAMAAAAAwIDgHAAAAAAABqq7p13DonFAAQAAAABmX600wxPnAAAAAAAwsG3aBSyaXbunXQEAa3HxVdftHT/12CPWtd64Se2Mr7eWbU7TNOpe77nZavN0TjfqmB7s52Ze9n/a1nL8Z+mYbtR1M0/3hkkmnZtpf4audj3WZ73v4f0tuxU2+54ya/sLexzItTlLn8WwlW4zIR33xDkAAAAAAAwIzgEAAAAAYEBwDgAAAAAAA4JzAAAAAAAYEJwDAAAAAMCA4BwAAAAAAAYE5wAAAAAAMLAQwXlV3bmqXl5VH6yqr1TVp6vq4qp64Gj+H1TVF6rqG5dZ9weqqqvq9NHrbVX1k1X1z1X1xar6eFVdUlWP2OLdAgAAAABgCuY+OK+qI5P8U5LHJPnpJN+R5AeSfCnJW6vqQUmel+TGJP99bN3bJHlZkrd294Wjyb+a5PlJ/kuSE5M8McnHkvxtVf3wJu8OAAAAAABTtm3aBWyA85JUkgd39+dH095fVX+X5K+T/FZ3P6CqfibJ+VX12919+Wi55ye5R5JTk6SqbpXkmUme3t1/OlrmfVkK4L8pyTOS/NmW7BUAAAAAAFMx18H56Gnz70/ynEFoniTp7q6qn0zywFEgfkGS05O8sqqOT3JkkhckeWl3v2+02h2THJbkXsts7uwkd96M/QAAAAAAYHbMdXCe5PgsPW3+D8vN7O6rk1y953VV/USSdyY5M8nJST6epS5Z9iz/mar62yQvrqrHJvlfo7b/qbs/kOQDm7QfAAAAAADMiHkPzm8/+vuZ1Szc3e+pqlck+bUsPVn+2O6+YWyxxyX5T0l+KMnPJ7l1kt1V9VdJfrK7P7QhlQMAAAAAMJPm/cdBPzv6e7flZlbVIVV1x1FXLXu8KEs/FPo33f1X4+t09w3d/fLufmiWgvmHJHlpkocn+YsVtnNmVe2sqp0XnL9j/XsDAAAAAMDUzfsT5+8a/T0hyd8vM/+MJOdmqW/yLyRJd3+5qj6f5Lrxhavq+5N8d3c/c7TsV5JckeSKqnp/kt+vqrt19yeG63X3jiQ7kmTX7vRG7BgAAAAAANMx10+cd/fHstQP+XOq6uuH86rq1ln6Qc9LuvsLq2yykjyjqpb7cdAbktyUUQAPAAAAAMBimuvgfOSZSb4+yaVVdWpV3beqTk7yl0kOz1J4vlr/M8nbk/x1Vf1IVd2vqh5YVWcl+c0kv9vdX97oHQAAAAAAYHbMe1ct6e4PVNXxWeq7/Pwkd0nyiSwF50/t7o+uoa2bq+oRSZ6b5BeS3CtLT5pfleT5Sf7HBpcPAAAAAMCMmfvgPEm6+8NJnraG5Y+eMO/LSf7LaAAAAAAA4CCzCF21AAAAAADAhhGcAwAAAADAgOAcAAAAAAAGBOcAAAAAADAgOAcAAAAAgAHBOQAAAAAADAjOAQAAAABgQHAOAAAAAAAD1d3TrmHROKAAAAAAALOvVprhiXMAAAAAABjYNu0CFs2u3dOuAICD3cVXXbfP61OPPWJKlezfsNa11Lne9bbaPJ2L9ToY9vFgM+mcTvt8T2P783K/gZVs1vtms98b+6v7pJdetnf80uc9fMO3D8DB4TYT0nFPnAMAAAAAwIDgHAAAAAAABgTnAAAAAAAwIDgHAAAAAIABwTkAAAAAAAwIzgEAAAAAYEBwDgAAAAAAAwsRnFfVoVX13Kq6sqpuqKrrq+ryqnpaVdVomaOrqqvq9AntXFhV16x1HgAAAAAAi2PbtAs4UFV1aJKLkzwgyS8luSzJYUm+J8l5Sb4ryZlTKxAAAAAAgLky98F5khckeUiSE7r76sH0nVX14SQXVtW5ST4/leoAAAAAAJgrcx2cj7pheVaS3x8Lzfe4KMmXIjQHAAAAAGCV5jo4T3LfJIcneetyM7v7piSvS5b6ON+6sgAAAAAAmFfz/uOgh4/+fnbPhKq6Z1XtGhteNZ3yAAAAAACYN/P+xPkXR3/vNpj2sST3H7x+TZJDV9nelw9wPgAAAAAAc27enzh/f5KvJDlxz4Tuvqm7rx71ef7+JEesob1PJrnzqO/0cd8wmv81qurMqtpZVTsvOH/HGjYHAAAAAMCsmevgvLt3JfmTJE+rqrsts8iTktx1DU1enuTfJTl5OLGqbpfkoVm5L/Ud3X1Cd59wxtPPXMPmAAAAAACYNfPeVUuS/HSSk5JcVlXnJHl3lp4Of1ySn0hy1djy31ZVjxqb9sXu/sckb0ny90kurKpnj9Y9KskLk3w1yW9vzi4AAAAAADAr5j447+5PVNXxSX4xyUuy1DXL9Un+LktPjj80yXGDVZ4/GoauSvLt3X1zVT02yYuSvGLU1ueyFKj/eHd/dDP3BQAAAACA6Zv74DxJuvtTSZ49Gsa9azC+XN/l4219IclzRwMAAAAAAAeZue7jHAAAAAAANprgHAAAAAAABgTnAAAAAAAwIDgHAAAAAIABwTkAAAAAAAwIzgEAAAAAYEBwDgAAAAAAA4JzAAAAAAAYEJwDAAAAAMBAdfe0a1g0DigAAAAAwOyrlWZ44hwAAAAAAAa2TbuARbNr97QrAGDaLr7qun1en3rsEVOqZPYNj9V6j9M0jvdG1M3sOumll+3z+tLnPXxLt79R1/Ra2jnYrunxYzN0MOz/wWban8uzdr2t9/0+7eM4yXrvd5PM0v4lW3+fnuXzzXS5Nlg0t5mQjnviHAAAAAAABgTnAAAAAAAwIDgHAAAAAIABwTkAAAAAAAwIzgEAAAAAYEBwDgAAAAAAA4JzAAAAAAAYWIjgvKoOrarnVtWVVXVDVV1fVZdX1dOqqkbLHF1VXVWnT2jn0tEyD1tm3u9W1aWbtxcAAAAAAMyCuQ/Oq+rQJBcneUGSVyX5ziSPTvLXSc5L8jvraPZVo3YBAAAAADjIbJt2ARvgBUkekuSE7r56MH1nVX04yYVVdW6Sz6+yvSuSnJDkuUlesqGVAgAAAAAw8+Y6OB91w/KsJL8/FprvcVGSL2X1oXmSvC/JW5L8UlX9cXdfe+CVAgAAAAAwL+a9q5b7Jjk8yVuXm9ndN3X367r7mjW2+1+SXJfkNw+sPAAAAAAA5s28B+eHj/5+ds+EqrpnVe0aG161lka7e1eSZyb5/qr6vo0rFwAAAACAWTfvwfkXR3/vNpj2sST3HwxXJ1nzD312998keU2SV1bV109atqrOrKqdVbXzgvN3rHVTAAAAAADMkLnu4zzJ+5N8JcmJSV6dLHXPkqWwfE8f6EccQPvPGbX1i5MW6u4dSXYkya7d6QPYHgAAAAAAUzbXT5yPulT5kyRPq6q7LbPIk5Lc9QDa/3iSn03yU0m+db3tAAAAAAAwP+b9ifMk+ekkJyW5rKrOSfLuJN+Q5HFJfiLJVWPLf1tVPWps2he7+x9XaP93kjw1yYOTXLYxJQMAAAAAMKvmPjjv7k9U1fFZ6k7lJVnqmuX6JH+X5OQkD01y3GCV54+GoauSfPsK7X+1qp6RZOcGlw4AAAAAwAya++A8Sbr7U0mePRrGvWswXvtp56QVpl+ZdfzAKAAAAAAA82eu+zgHAAAAAICNJjgHAAAAAIABwTkAAAAAAAwIzgEAAAAAYEBwDgAAAAAAA4JzAAAAAAAYEJwDAAAAAMCA4BwAAAAAAAaqu6ddw6JxQAEAAAAAZl+tNMMT5wAAAAAAMLBt2gUsml27p10BAAeji6+6bu/4qcceccBtHEg7m2Gzapt03FZ7TMdrG5rGMZxUz9Asnd/9mXT+V7u/4+Zp/9l4rqnNt9r76/j8zbjf7++cbvW524jP7FnY/nrfK0Nr2f5atrfadmf5uw/TNU/Xxqx9F4V5MHzfPP64ld8nnjgHAAAAAIABwTkAAAAAAAwIzgEAAAAAYEBwDgAAAAAAA4JzAAAAAAAYEJwDAAAAAMCA4BwAAAAAAAYWJjivqkOr6rlVdWVV3VBV11fV5VX1tKqq0TJHV1VX1ekrtHHyaP5PLjPvsKr6SFW9ZZN3BQAAAACAKVqI4LyqDk1ycZIXJHlVku9M8ugkf53kvCS/s5p2uvstSV6d5EVVdfjY7J9PcniS/7RBZQMAAAAAMIO2TbuADfKCJA9JckJ3Xz2YvrOqPpzkwqo6N8nnV9HWTyU5Jcl/TfIfk6Sq7pPkuUn++1j7AAAAAAAsmLl/4nzUDcuzkvz+CqH2RUmekNWF5unuf8tSEP+0qjphNPnXk3wkyYsPuGAAAAAAAGba3AfnSe6bpS5U3rrczO6+qbtf193XrKHN85P8Q5Jzq+qULD2BflZ37zrQYgEAAAAAmG2LEJzv6Yv8s3smVNU9q2rX2PCq1TbY3Z3kJ5Icn+RPkvxJd//1RhYNAAAAAMBsWoTg/Iujv3cbTPtYkvsPhquTHLqWRrv7/yT5vSSHJXnOpGWr6syq2llVOy84f8daNgMAAAAAwIxZhB8HfX+SryQ5Mcmrk6XuWbIUlu/pA/2IdbZ93ai96yYt1N07kuxIkl270+vcFgAAAAAAM2Dunzgf9Tv+J1n6Mc+7LbPIk5LcdWurAgAAAABgXi3CE+dJ8tNJTkpyWVWdk+TdSb4hyeOy1Ff5VWPLf1tVPWps2he7+x83t0wAAAAAAGbdQgTn3f2Jqjo+yS8meUmWuma5PsnfJTk5yUOTHDdY5fmjYeiqJN+++dUCAAAAADDLFiI4T5Lu/lSSZ4+Gce8ajNca2jwnyTkHVBgAAAAAAHNl7vs4BwAAAACAjSQ4BwAAAACAAcE5AAAAAAAMCM4BAAAAAGBAcA4AAAAAAAOCcwAAAAAAGBCcAwAAAADAgOAcAAAAAAAGBOcAAAAAADBQ3T3tGhaNAwoAAAAAMPtqpRmeOAcAAAAAgIFt0y5g0ezaPe0KmBcXX3Xd3vFTjz1iU9vfrG1sls0+NrAZFv26PZB7yqIfm42yUfftScd7o87FVmxjI2zWZ+H7P/aFveP3O/J2G9LmwW6WrpuNstXfxTZrexvxfp/n76WbbVGOzVZ8hq1lWf/WYhaNXzfjXEcwHbeZkI574hwAAAAAAAYE5wAAAAAAMCA4BwAAAACAAcE5AAAAAAAMCM4BAAAAAGBAcA4AAAAAAAMLGZxX1TVVdeH+5lXVpVV16dj8x1bV5VX16ar6bFX9Y1WdUVULeawAAAAAANiXMHigqr43yRuTvD7JyUkeneQNSV6Z5NenVhgAAAAAAFtm27QLmDE/meTC7n7FYNrbq6qSvLCqntPdN0+pNgAAAAAAtoDgfF9HJklV3aq7vzqYfn6SnUlqKlUBAAAAALBldNWyrz9J8t1J3ldVL6+qH66qb+zuT3f333b37mkXCAAAAADA5lrk4PzHqmrX+JDkniut0N0vTvKEJO9PckaS1yX5SFW9s6oesTVlAwAAAAAwTYscnP9FkvsvM3xs0krd/bruflySOyU5NslzktwxySVVdY9NqhUAAAAAgBmxyMH557r76vEhyU3LLVxV962q11TV3ZOku7/a3e/t7l9P8ogkt0nykBXWPbOqdlbVzgvO37FJuwMAAAAAwFbw46C3uD7J45O8KckfjM27YfT3M8ut2N07kuxIkl2705tVIAAAAAAAm09wPtLdn6qqVyR5ZVXdKcmbk1SWumt5XpIrk1w6vQoBAAAAANgKgvN9/XSSdyZ5VpJfTHJokg8m+dMk53b3st28AAAAAACwOBYyOO/uo1czr7tPGpvXSf54NAAAAAAAcBBa5B8HBQAAAACANROcAwAAAADAgOAcAAAAAAAGBOcAAAAAADAgOAcAAAAAgAHBOQAAAAAADAjOAQAAAABgQHAOAAAAAAADgnMAAAAAABio7p52DYvGAQUAAAAAmH210gxPnAMAAAAAwMC2aRewaHbtnnYFAKzXxVddt8/rU489YkOW5RaTjtv4vJWW26ztz6tF3CfYCOt9b8zae2pYz7RrmeROJ569z+vr337uhrS72v0/6aWX7fP6eY/9llWtd7Cbtet9knmqFYB9zfI9/DYT0nFPnAMAAAAAwIDgHAAAAAAABgTnAAAAAAAwIDgHAAAAAIABwTkAAAAAAAwIzgEAAAAAYEBwDgAAAAAAAwsfnFfVOVXVo/ELq+qaCcseXVU9YXjNlhUOAAAAAMBUbJt2ATPqCUl2LjP9S1tdCAAAAAAAW0twvryPd/c10y4CAAAAAICtt/BdtQAAAAAAwFoIzgEAAAAAYEBXLct7854fFB3znd393i2vBgAAAACALeOJ8+X9eJL7LzN8YLmFq+rMqtpZVTsvOH/HlhQIAAAAAMDm8MT58q7t7qtXu3B370iyI0l27c5yT6oDAAAAADAnPHEOAAAAAAADB+MT57epqkctM/2fB+N3r6qjl1lmV3d/fHPKAgAAAABgFhyMwfndkvyvZaY/IcnO0fhrV1j375M8dDOKAgAAAABgNix8cN7d5yQ5ZzR+epLT97NKbWpBAAAAAADMNH2cAwAAAADAgOAcAAAAAAAGBOcAAAAAADAgOAcAAAAAgAHBOQAAAAAADAjOAQAAAABgQHAOAAAAAAADgnMAAAAAABio7p52DYvGAQUAAAAAmH210gxPnAMAAAAAwMC2aRewaHbtnnYFbLaLr7pu7/ipxx4xxUrYCsPznczWOZ/l2g5G7g0b704nnr13/Pq3n7vp25v0nprG+218m6vd/qRrcRGv05Neetk+ry993sP3jq/3vM36/XW153jceq+bjTJL199ajtPwGhteX+PtHMg+zdKxmVcHci9Y7/Gf1/O22rr3d9yGx/x5j/2WFdvZimM66/dt2CreC7B2t5mQjnviHAAAAAAABgTnAAAAAAAwIDgHAAAAAIABwTkAAAAAAAwIzgEAAAAAYEBwDgAAAAAAA4JzAAAAAAAYWIjgvKquqaoLV5h3elX1hOEnRsudU1W9QhsrzgMAAAAAYLFsm3YBW+TmJPdZYd6nt7IQAAAAAABm28ESnKe7r5l2DQAAAAAAzL6F6KoFAAAAAAA2iuAcAAAAAAAGDpauWg6pql3LTP9Ud99jy6sBAAAAAGBmHSzB+c1J7r/M9N2D8S/vp40bNqwaAAAAAABm1kHTVUt3X73M8IHBIp9Mkqq6yzKrf8Oe+cupqjOramdV7bzg/B0bXDkAAAAAAFvpYHnifDUuH/19XJLf2zOxqrYleUySt660YnfvSLIjSXbtTm9ijQAAAAAAbLJFCs6PqKpHLTP90CSpqqNXWO+z3f3Z7v5AVb0mycuq6uYk/5Dkrkmel+ToJD+y8SUDAAAAADBrFik4f8xoGPf8JIck+dAK6704yS+Mxk9L8rNJfi7JPbPU7/k/JHlod1+5odUCAAAAADCTFiI47+6j97PIS1fZzk1Jfnk0AAAAAABwEDpofhwUAAAAAABWQ3AOAAAAAAADgnMAAAAAABgQnAMAAAAAwIDgHAAAAAAABgTnAAAAAAAwIDgHAAAAAIABwTkAAAAAAAwIzgEAAAAAYKC6e9o1LBoHFAAAAABg9tVKMzxxDgAAAAAAA9umXcCi2bV72hUAwMa4+Krr9o6feuwRG97meLuT5sE0uTZnl3MzOyadi5Neetk+8y593sO3dPsHsuxG1DPe/mZ8vm6Fab/fNmr74+2sZJ7ODVtr2u8FWA/X7cpuMyEd98Q5AAAAAAAMCM4BAAAAAGBAcA4AAAAAAAOCcwAAAAAAGBCcAwAAAADAgOAcAAAAAAAGBOcAAAAAADCwMMF5VV1TVRcuM/0uVfWpqnr9Cuu9cTT/LqPX96iqC0ft3VBVH6iqV1TVEZu8CwAAAAAAzICFCc5X0t2fSvIzSX6wqh49nFdVj0ny/Ul+urs/VVW3S3JpkjsmeUqS45M8P8mjk7ytqu6whaUDAAAAADAF26ZdwBb5vSRPTfKbVfUd3X1TVR2a5DeSXJ7k90fLnZLkbkm+rbtvHE17b1W9LcmHR/Mv2trSAQAAAADYSgv/xHmSdHcn+U9JvjnJT44mP3v0+idG85PkyCRfN/o7XP9jSU7KUsgOAAAAAMACOyiC8yTp7quSvCzJL1XV/ZP8YpKXdvd7B4tdnOSmJP9cVX9cVT9RVfevqkO6+/Lu/vDWVw4AAAAAwFY6aILzkV9O8ukkfzf6+yvDmd39f5N8Z5L/keTEJK9K8q4kn6iqF1XVIVtbLgAAAAAAW+2gCs67+4YkP5/ksCQ/P3o9vsz7u/us7r5PkrsmeXySK5L8UpL/vFy7VXVmVe2sqp0XnL9j0+oHAAAAAGDzHSw/Djp03djfvarq5Une1t1/kiTd/ckkf5bkz6rq0iSPylJ3L/vo7h1JdiTJrt3p8fkAAAAAAMyPg+qJ81W4d5JnrDDvhiSf2cJaAAAAAACYgkV74vyIqnrUMtMv6+6bVrH+f0lyeVX9UZLfTvKJJEcn+YEkjxgNAAAAAAAssEULzh8zGsYdnuRT+1u5u3dW1QOSnJOlHwi9e5KPJ7k0yQO7+90bVSgAAAAAALNpYYLz7j56lctdmqQmzL86yZM2pioAAAAAAOaNPs4BAAAAAGBAcA4AAAAAAAOCcwAAAAAAGBCcAwAAAADAgOAcAAAAAAAGBOcAAAAAADAgOAcAAAAAgAHBOQAAAAAADFR3T7uGReOAAgAAAADMvlpphifOAQAAAABgYNu0C1g0u3ZPuwIApu3iq67b5/Wpxx4xpUoOzHA/NmsftmIb6zXLtR0MVnv8F+X9Nksc0325FyyeSdf4Wq7/g/3aONj3H4DFcJsJ6bgnzgEAAAAAYEBwDgAAAAAAA4JzAAAAAAAYEJwDAAAAAMCA4BwAAAAAAAYE5wAAAAAAMCA4BwAAAACAgbkOzqvqmqrqqnraCvPfMpr/C1V19Gh8peE1VXXSfpbpqjpni3cTAAAAAIAttG3aBWyAm5M8McnvDSdW1d2SPGw0f+gJSXYu086Xknwhyb0G016a5LuSPHQw7bMHVi4AAAAAALNsEYLzy5I8sqq+obs/M5j+Q0muSXLI2PIf7+5rJrS3d15VfTHJ7v0sDwAAAADAApnrrlpG3prk00l+cGz6E5K8duvLAQAAAABgni1CcH5zktdnqbuWJElV3TVL3bQIzgEAAAAAWJNFCM6T5E+TPKKq7jx6/cNJru3udyyz7Juratcyw7dtXbkAAAAAAMyqRQnO35rkU7mlu5ZJ3bT8eJL7LzN8YL0br6ozq2pnVe284Pwd620GAAAAAIAZsAg/Dpru/mpVvT7JE6rqL7LUTctPr7D4td199QZvf0eSHUmya3d6I9sGAAAAAGBrLcoT58mou5YkZyb5cHfvnHI9AAAAAADMoYV44nzk8iSfTPILSX5zwnJ3r6qjl5m+q7s/vhmFAQAAAAAwPxYmOB911/JnSc5O8roJi67U9/nfJ3nohhcGAAAAAMBcmevgvLuPHnv9rCTPmrBMrbH909dZGgAAAAAAc2qR+jgHAAAAAIADJjgHAAAAAIABwTkAAAAAAAwIzgEAAAAAYEBwDgAAAAAAA4JzAAAAAAAYEJwDAAAAAMCA4BwAAAAAAAYE5wAAAAAAMFDdPe0aFo0DCgAAAAAw+2qlGZ44BwAAAACAgW3TLmDR7No97QoANs/FV123d/zUY4+YYiVM21quhY24boZtHEg7B5uNOm6zdvzXe00d7Pew8fM4NO3jcbCfm2nbjOO/3s+JcVt9PazlfjdLdc+a1R6bWft8mcR9CmAx3WZCOu6JcwAAAAAAGBCcAwAAAADAgOAcAAAAAAAGBOcAAAAAADAgOAcAAAAAgAHBOQAAAAAADMx9cF5Vl1ZVjw2fqao3VNU9R8tcU1UXrrD+PvOWaWs4/OPW7BUAAAAAANOybdoFbJC3JXnSaLyS3DvJjiR/UVXfuY72npPkjctM/8q6qgMAAAAAYG4sSnC+q7uvGbz+UFWdk+QPk9xnHe19aqw9AAAAAAAOEnPfVcsEXxr9PXSqVQAAAAAAMFcWMjivqnsneX6SDya5esrlAAAAAAAwRxYlOH9YVe0aDTcm+X9J7pzkR7p792iZHxsss3dIcs9l2vu95Zatqsdu1Q4BAAAAADAdi9LH+c4kpw1ef6a7/21smb9I8rPLrPvmZab9fJL/ucz0D6+vPAAAAAAA5sWiBOdf7u79dcnyueWWqaqblln2ulW0N2zjzCRnJsm5v/U7OePpZ652VQAAAAAAZsyiBOdT1d07kuxIkl2701MuBwAAAACAAyA4X95dquroZabv7u6PbHUxAAAAAABsHcH58l4xGsZ9NMk9trgWAAAAAAC20NwH59190iqWOXq187q7DrgoAAAAAADm1q2mXQAAAAAAAMwSwTkAAAAAAAwIzgEAAAAAYEBwDgAAAAAAA4JzAAAAAAAYEJwDAAAAAMCA4BwAAAAAAAYE5wAAAAAAMCA4BwAAAACAgeruadewaBxQAAAAAIDZVyvN8MQ5AAAAAAAMbJt2AYtm1+5pVwDANFx81XUrzjv12CO2sJKNM9yn8X2YNG8t7Uy7tvVsb9y0z+9aapul/Xj/x76wz+v7HXm7Ld3+uLUcm2Ht0657kvVeG9O+pqfhYN//advs4z/+XljLNtZ735z2/Xban5OrPTYHw+c07HEg96Kt3sakdqb9fofVWu31d5sJ6bgnzgEAAAAAYEBwDgAAAAAAA4JzAAAAAAAYEJwDAAAAAMCA4BwAAAAAAAYE5wAAAAAAMCA4BwAAAACAgbkNzqvq0qrqseEzVfWGqrrnaJkLl1nmpqr6UFX916q69Vibd66qV1TV/6uqXaP2Lq2q06qqprOnAAAAAABspW3TLuAAvS3Jk0bjleTeSXYk+Yuq+s7R9I8meehgnW1JHpPkN5N0kp9Lkqr6piR/n+SLSX4hybuS3C7JDyW5IMljqurHurs3c4cAAAAAAJiueQ/Od3X3NYPXH6qqc5L8YZL7jKbtHlsmST5QVT+Y5PsyCs6TXJjkS0ke2N1fGCz79qr6YJYC+b9K8uqN3AEAAAAAAGbL3HbVMsGXRn8P3c9yNyS5KUmq6t8neUSSF42F5ntckOR9SZ6+UUUCAAAAADCbFio4r6p7J3l+kg8muXqFZbZV1SlJHp3kD0aT93Tlculy63T3V7PULcxxG1kvAAAAAACzZ967anlYVe0ajd8qS0+Z/0uSH+nu3aPf87znYJmMlrlVkjdnqZ/zJPmG0d9PT9jWvyX5+o0qHAAAAACA2TTvT5zvTHL/0fAdSe7W3d/S3TsHy3xssMz9kzwgyQuTPDLJ2aNlPjf6e/cJ2/qmLIXnX6OqzqyqnVW184Lzd6xjNwAAAAAAmBXz/sT5l7t72S5ZBm5aZpl/rqozkjwoySuTvH00/cFJ/mS8gaq6dZKTs3JXLjuy9OOh2bU7verqAQAAAACYOfP+xPmB+HCSWydJd78tybuT/EJVfd0yy56R5G5Jfn2rigMAAAAAYDrm/YnzA/GFjILzkdOS/O8kl1bVS5K8N8lhSX4gyQuSvGAUsAMAAAAAsMAO5uD8k0m+t6qO6O7ruvv/VNUDkvxclp4sPzJL4frbkpzS3X87vVIBAAAAANgqcxucd/dJq1jm9AnzTltm2keSPPOACgMAAAAAYK4dzH2cAwAAAADA1xCcAwAAAADAgOAcAAAAAAAGBOcAAAAAADAgOAcAAAAAgAHBOQAAAAAADAjOAQAAAPj/27vzcMnOuk7g31/ShICyCShBBgKKIFFWt7DIvgfUAQQVYzQSERRlABeUCYIM6iBRVu2wBIcADhEYDaIoEFkUJGxCIAEkkUASSMISkDSkk3f+qOr27aKq+t7b99apW/35PE8999RZv/WeU2+d+vXpUwB0FM4BAAAAAKBTrbWhM6waDQoAAAAAsPxq1gRXnAMAAAAAQGfH0AFWza7dQydYfaefdeHe4WOOOmLAJPu3nbJuR337JlvTxovYBrMteh/PW/9klklrzbZdj6l5udfzmjb6+u/xnH/a5/kZT777mpbbTuYdY0McJ8uWZzOsyufyZryOZeuLVmXf9JatjeeZ1/77+/zbyHIb/ZzYrH5p3mfKgXymbTTPstqsz/f1tNN6jsVVaGPoDf35voqfxbAWh8+pjrviHAAAAAAAOgrnAAAAAADQUTgHAAAAAICOwjkAAAAAAHQUzgEAAAAAoKNwDgAAAAAAHYVzAAAAAADorEThvKoeWFXvqKpLq+pLVfXuqjq+qg4ZTz+lqtqcx63nzHdFVZ1bVc+uqsOGfaUAAAAAAGy1HUMHOFBV9aAkr0/yW0ken+TqSe6V5PlJbpfkCeNZ35Xk0TNW89mJ4bt2z3ckuV+S5yVpSZ66WdkBAAAAAFg+275wnlFh/JTW2knduPdWVSU5saqeOB63q7V23hrWt3vKfJ+sqp9I8pAonAMAAAAArLRVKJzfOEmq6pDW2lXd+JOTnJmkNmk7lye5YpPWBQAAAADAklqFe5z/ZZL7J/lYVT23qh5WVd/ZWru0tfaPrbXdB7LyqtpRVQ9Oct8kr9iMwAAAAAAALK9tXzhvrT0rySOSnJPk+CSnJflMVb2/qu7VzXrPqto15fGqiVXerJ+e5OtJTs/oHunPW8BLAgAAAABgQKtwq5a01k5LclpVHZLk1hn9mOcTkryxqm45nu09SX5hyuKXTTy/IMm9u+eHJfnxJL+X5Fcy+tFRAAAAAABW1La+4ryqbllVr6mqGyVJa+2q1tpHW2t/kuReSQ5Pcpfx7F9rrZ095XHBxGqvmJj+b621ZyT5dJKjZ+Q4oarOrKozX3ryzq15sQAAAAAALMR2v+L8i0kenuRN+eb7j18+/vuFTdrW+Rldff5NWms7k+xMkl270zZpewAAAAAADGBbF85ba5dU1UlJnl9V10vyliSV5KgkT07yoSRnJPmZJIdX1ZEzVnVRa23Xfjb3lcwonAMAAAAAsDq2deF87DeSvD/JryZ5WpKrJflUkv+b5AWttSuqKhndsuXcGeu4b5J/3M92Lk7yoKo6orV24WYEBwAAAABg+Wz7wnlrrSV59fgxa57jkhy3hnXNnKe1duz60wEAAAAAsN1s6x8HBQAAAACAzaZwDgAAAAAAHYVzAAAAAADoKJwDAAAAAEBH4RwAAAAAADoK5wAAAAAA0FE4BwAAAACAjsI5AAAAAAB0FM4BAAAAAKBTrbWhM6waDQoAAAAAsPxq1gRXnAMAAAAAQGfH0AFWza7dQycAgO3p9LMu3Of5MUcdsZTr3CqTWXtD5O7zLHO7HYw2Y99sp/fGommbxVv0MX2wf94ss3nHgjbeej774cDop7anw+dUx11xDgAAAAAAHYVzAAAAAADoKJwDAAAAAEBH4RwAAAAAADoK5wAAAAAA0FE4BwAAAACAjsI5AAAAAAB0tnXhvKrOqKq2n8cpVXXejOX3mTZ+Prn8FVV1blU9u6oOW9RrAwAAAABgGDuGDnCAHpXk8PHwTZK8I8lTkpzWzfP0da7zs0nu2j3fkeR+SZ6XpCV56kaCAgAAAACwPWzrwnlr7aI9w1W1Z/CS1tp5U8av1e5++bFPVtVPJHlIFM4BAAAAAFbatr5Vy4JdnuSKoUMAAAAAALC1FM73o6p2VNWDk9w3ySuGzgMAAAAAwNba1rdqWYebVdWuKeOvluT8/cx7tYz+geEtGd3nHAAAAACAFXawXHF+QZLbT3n89RrmvUOSE5PcO8mvTFt5VZ1QVWdW1ZkvPXnn5qUGAAAAAGDhDpYrzq9orZ09ObKqvrzGef+tqo5PcnSS508u0FrbmWRnkuzanbYJeQEAAAAAGMjBcsX5Zjg/yWFDhwAAAAAAYGspnK/dV6JwDgAAAACw8hTO1+7iJHeuqiOGDgIAAAAAwNZZmXuct9bOS1JTxh83Z5nj5j2fmHbshsMBAAAAALBtuOIcAAAAAAA6CucAAAAAANBROAcAAAAAgI7COQAAAAAAdBTOAQAAAACgo3AOAAAAAAAdhXMAAAAAAOgonAMAAAAAQKdaa0NnWDUaFAAAAABg+dWsCa44BwAAAACAzo6hA6yaXbuHTgAAq+f0sy7c5/kxRx2x6evdrHUyrHn71P6Gxdno+20r+vvJdU462PqDRfeFW/UZvuhtAAfG+5Rldfic6rgrzgEAAAAAoKNwDgAAAAAAHYVzAAAAAADoKJwDAAAAAEBH4RwAAAAAADoK5wAAAAAA0FE4BwAAAACAzrYunFfVGVXV9vM4bsq4q6rq81V1alXduFvfKVPmvayq/rGqbjvkawUAAAAAYDG2deE8yaOS3Hz8uNt43FO6cTfv5r1bN+67khyb5D5JTptY52cnln9AkuskeVNVXXtLXgUAAAAAAEtjx9ABDkRr7aI9w1W1Z/CS1tp5U8Z/ph+f5Nyqel6S36+q67fWLh2P3z0x33lV9T+SvD3J0Un+fjNfAwAAAAAAy2W7X3F+oC4f/71iP/P95/jv1bYwCwAAAAAAS2BbX3G+UTW6DP2oJI9N8obW2mVz5j0iyYlJvpTknxcSEAAAAACAwRxMhfNzqqqNhw/N6LVfmFHxvHezqto1Hq4khyW5KMmjWmtfWEhSAAAAAAAGczDdquVBSW7fPX4qybWSvGhivgu6eW6X5CattSNaazPvbV5VJ1TVmVV15ktP3rnZuQEAAAAAWKCD6Yrzf5/40c+zquqBSe47Md8VrbWz17Pi1trOJDuTZNfutP3MDgAAAADAEjuYrjif5vyMbsUCAAAAAABJFM6/EoVzAAAAAAA6B3vh/OIk16qq+w0dBAAAAACA5bAy9zgf37+8pow/JckpM5Z5WZKXdc+P25JwAAAAAABsGwf7FecAAAAAALAPhXMAAAAAAOgonAMAAAAAQEfhHAAAAAAAOgrnAAAAAADQUTgHAAAAAICOwjkAAAAAAHQUzgEAAAAAoKNwDgAAAAAAnWqtDZ1h1WhQAAAAAIDlV7MmuOIcAAAAAAA6O4YOsGp27R46AcD2cvpZF+4dPuaoIwZMMry+LZLlbo9F77etahvH38Flrft7O70X51mV18HGDL3/19O/TmbtrfpxO/R+WoR5r/FAXr/PcAA2w+FzquOuOAcAAAAAgI7COQAAAAAAdBTOAQAAAACgo3AOAAAAAAAdhXMAAAAAAOgonAMAAAAAQGdbF86r6oyqavt5fL2qnjtl2UOq6n1VdU5VXb2qjpuy7FVV9fmqOrWqbjzEawQAAAAAYLF2DB3gAD0qyeHj4ZskeUeSpyQ5rZvn+CS/VVUvaa19tBv/i0numOTerbWvV9We8XdL8pnxcCW5VZJXjNd55614EQAAAAAALI9tXThvrV20Z7grfF/SWjuvG/+sjArsz0tyn/G46yV5VpJXttbeOrHaz/TLJzm3qp6X5Per6vqttUs3+3UAAAAAALA8tvWtWtaitbYryeOT3LuqHjYe/cwkhyZ50hpXc/n47xWbHA8AAAAAgCWzra84X6vW2pur6jVJ/riqPpPksUke11r7/LzlanQZ+1Hj+d/QWrts69MCAAAAADCkg6JwPvbEJGcneUuSf01y8oz5zqmqNh4+NKM2ujCj4jkAAAAAACtu5W/Vssf4fuh/mORbkjyptdZmzPqgJLfvHj+V5FpJXrTlIQEAAAAAGNxBUzgfu3Di7zT/3lo7e/w4q7X2miSvS3L0rAWq6oSqOrOqznzpyTs3My8AAAAAAAt2MN2q5UCcn+SwWRNbazuT7EySXbsz60p2AAAAAAC2gYPtivON+krmFM4BAAAAAFgdCudrc3GSa1XV/YYOAgAAAADA1lqZwnlr7bzWWrXWTpkzzynjec5b57SXjae9eVNDAwAAAACwdFamcA4AAAAAAJtB4RwAAAAAADoK5wAAAAAA0FE4BwAAAACAjsI5AAAAAAB0FM4BAAAAAKCjcA4AAAAAAB2FcwAAAAAA6CicAwAAAABAp1prQ2dYNRoUAAAAAGD51awJrjgHAAAAAIDOjqEDrJpdu4dOANOdftaF+zw/5qgjBkqy/Pq20k6rb6P7e6PvqUUvtww2o40Xsdx2shmvcTsfUwxn6ONm6O0zrMn9P88yHRublXvoc49JQ7fxZp3D9YZ+TTDLwXB+C0M5fE513BXnAAAAAADQUTgHAAAAAICOwjkAAAAAAHQUzgEAAAAAoKNwDgAAAAAAHYVzAAAAAADoKJwDAAAAAEBnJQrnVfWkqmpVdZsp065VVbuq6oXduEOr6sKqurKqvnPKMudV1SlbHBsAAAAAgCW0EoXzJK9OclWSh0+Z9pAkV09yajfu/klulKQledSWpwMAAAAAYNtYicJ5a+2CJG/L9ML5w5Kc21r7527csUn+Ncnbk/zM1icEAAAAAGC7WInC+dipSb6/qr5nz4iqumaSByR5VTfu2kkemuS0JG9Icoeq+t7FRgUAAAAAYFmtUuH8r5Lsyr5XnT84yTWTvLIb95NJrpH/KpwnrjoHAAAAAGBsZQrnrbXLkvxN9i2cPyzJ+1trZ3fjjk1yZmvt3Nbap5N8IMlPLy4pAAAAAADLbGUK52OnZnTrlVtU1eEZXXG+90dBq+rmSe6a0dXme7whyc2r6s4b3WhVnVBVZ1bVmS89eedGVwMAAAAAwBLYMXSATfamJF/I6Krzj2d0m5bXdNOPTVJJ/ldVPWs8rsZ/fyZJ/wOia9Za25lkZ5Ls2p22kXUAAAAAALAcVuqK89baN5K8NqPC+cOSvLW1dkE3y6OTvD3J7ZLcfvy43XjcT1bVqv1DAgAAAAAA67SKheJTk/xSkqOSPH7PyKq6S5LvTvLbrbWP9AtU1c6MfkD0/kneOB59RFXdZ8r6/6m1dsVWBAcAAAAAYHirWDh/Z5L/SPIdSV7XjT82yUVJ/t+UZV6X5MsZ3a5lT+H8fuPHpBsmuWSzwgIAAAAAsFxWrnDeWmtJjpwy/pcyuhJ92jKXJ7lu9/yblgcAAAAA4OCwUvc4BwAAAACAA6VwDgAAAAAAHYVzAAAAAADoKJwDAAAAAEBH4RwAAAAAADoK5wAAAAAA0FE4BwAAAACAjsI5AAAAAAB0qrU2dIZVo0EBAAAAAJZfzZrginMAAAAAAOjsGDrAqtm1e+gE28fpZ124d/iYo44YMMl8fc5kftb1zLvWbS6ibSZz957zpo/v8/yMJ999TesZYp8Ovf2DzT2e80/7PJ93bPTzzptvPeYdt5P7v9/+kx/4PXPnnbXcZuWetBXH7Ub7onnLrWd/r8daX/969ve85Sbn3ej2F9E2y2ze/uhNfob077/1HO9Df75u1vYXYTNe47z3yaSteE+tx1b0d5tlsm9Y6/E/dNtMeul7zts7fPwPH7nPtEV8Tq6ioc/1l+n9NvR3rXkOZN+stU/drH56KyzzZ996jql5tuIYWubzmwN5v210ubXOu0zH16pa5vf00A6fUx13xTkAAAAAAHQUzgEAAAAAoKNwDgAAAAAAHYVzAAAAAADoKJwDAAAAAEBH4RwAAAAAADoK5wAAAAAA0NnWhfOqOqOq2n4eT9/P9AeM1zVtviur6rNV9eKquvbQrxcAAAAAgK23Y+gAB+hRSQ4fD98kyTuSPCXJad08xyX5jyT3mLGOz008v3k3fGiSH0jysiTXSfLTB5QWAAAAAIClt60L5621i/YMV9WewUtaa+dNjN/dj9vPOifn+/equk9GRXoAAAAAAFbctr5VywJdnuSKoUMAAAAAALD1tvUV51utqg5J8sNJfirJKwaOAwAAAADAAhwshfNbVNWuKePf11q7Sz9iYr4dGd3n/CNJnrqF+QAAAAAAWBIHS+H8/CT3nzL+8injbt8N70hytyTPS/L7SZ606ckAAAAAAFgqB0vh/IrW2tlrmXHKfB+pqkclOXrWMlV1QpITkuQFL/rzHP+YEzYcFAAAAACAYR0shfMDdX6SW8+a2FrbmWRnkuzanbaoUAAAAAAAbL6DpXC+o6qOnDHtktbaV/ez/FeSHLa5kQAAAAAAWEYHS+H8ZknOnTHtMUlesp/lL05y66r6vtbaRzY1GQAAAAAAS+WQoQNsltbaea21aq2dMjH+6ePxsx4v6eebse7/2Vo7TNEcAAAAAGD1rUzhHAAAAAAANoPCOQAAAAAAdBTOAQAAAACgo3AOAAAAAAAdhXMAAAAAAOgonAMAAAAAQEfhHAAAAAAAOgrnAAAAAADQUTgHAAAAAIBOtdaGzrBqNCgAAAAAwPKrWRN2LDLFQWJmYwMAAAAAsPzcqgUAAAAAADoK5wAAAAAA0FE4BwAAAACAjsI5AAAAAAB0FM4BAAAAAKCjcA4AAAAAAB2FcwAAAAAA6CicAwAAAABAR+EcAAAAAAA6O4YOsILaRhb6vd/7vX2en3jiiRva+FasZ6Pr2Mz1bMU6N2M9m9Xei9jGVmSVbWPrWdXjdpmy2W+LXc9WHEMHst5l2m/z1nkg65Vt2Gyvfe1r9w4/4hGP2PB6NsOytY3+bmvXs2xts9XrnFzvKvYpy7ZPHe9rW4+2mb0ebTN7PUO3zbx1Hsh6V32/bdZ6linLMqxnK9Z5AOupWRNccQ4AAAAAAB2FcwAAAAAA6CicAwAAAABAR+EcAAAAAAA6CucAAAAAANBROAcAAAAAgI7COQAAAAAAdBTOAQAAAACgo3AOAAAAAAAdhXMAAAAAAOgonAMAAAAAQEfhHAAAAAAAOgrnAAAAAADQUTgHAAAAAICOwjkAAAAAAHQUzgEAAAAAoKNwDgAAAAAAHYVzAAAAAADoKJwDAAAAAEBH4RwAAAAAADoK5wAAAAAA0Nlv4byqzquqXVV1yynT/rGqThkPtzmPd4/nOXL8/Lgp69o7rarusZ/1tap6epdvctrlVfWhadsZL3PMeL6/mzJtz7bvsb+2AQAAAABg9exY43xXT/LCJPfbz3xPTPKGKeO/vo5MSfLuJDfvnj8nyY8kuWs37kvd8F8leXL3/JpJnpDk5VV1YWvt7yfWf2yS3UnuU1Xf0Vr73DrzAQAAAACwotZ6q5Yzkty3qh65n/kuaa2dN+Vx4XpCtdZ29csn+WqS3RPr/FK3yFcnpn00ya8k2ZXkmH7dVXWdJA/JqBh/aJL9vSYAAAAAAA4iay2cvyXJqUlOqqprb2GeTdNa253kivGj98gkhyX5kyQfSPIzi00GAAAAAMAyW8+Pg/6PJIcnecYWZdk0VfUtVfW0jPK+amLysUneMb49yxuS/NC0+7cDAAAAAHBwWnPhvLX2+SS/leRXquoOM2Z72fiHRCcfD9yUtLP9bL+9jG7t8owkz2ytnblnpqr6riR3SfLa8ag3jP/+9BbnAwAAAABgm1jPFedJcnKS9yR5cVVNW/Z3ktx+yuPt4+lfW8M21jLPpL+e2N4PZfSDoSdW1e27+Y5NclWS1yVJa+3fknwqB3i7lqo6oarOrKozd+7ceSCrAgAAAABgYDvWM3NrrVXVY5O8P8ljpsxyYWvt7Dmr+EJGhesbTJn2beO/F68n09iXJ7dbVU9J8rCMiugfHI9+dEb/WHB+Ve2Z9ZDR7PWDrbX3bmDbaa3tTLKnYt42sg4AAAAAAJbDeq84T2vtw0mem+TZSW64zmV3J/mXJA+dMvlBSb6eZEPF6ynOH/89LEmq6m5JbpHRvdpv3z3ukVEx34+EAgAAAACwvivOO7+X5JFJbpvkA934G1TVkVPm391a+8x4+FlJ3lhVL07yZ0muzKho/rtJTmqtfXWDmfbRWts9vt/5YeNRxya5NMmLW2u7+nmr6q1JHlVVT+pG36mqJtvn4tbahzYjHwAAAAAAy2lDhfPW2teq6vFJTp+YdNL4MemzSW4yXvZNVfWAJL+d0b3Pr5bkE0menOSFG8kzx8VJ/ntV/VmSRyR5yWTRfOxlSV6V5N5JvjEe95wp870xyTGbnBEAAAAAgCWy38J5a+3IGePfmKS65zVtvhnLvjnJm9cx/3HrzTeedtPu6XXnzPfqJK/uRq35tQAAAAAAsFrWfY9zAAAAAABYZQrnAAAAAADQUTgHAAAAAICOwjkAAAAAAHQUzgEAAAAAoKNwDgAAAAAAHYVzAAAAAADoKJwDAAAAAEBH4RwAAAAAADoK5wAAAAAA0FE4BwAAAACAjsI5AAAAAAB0FM4BAAAAAKCjcA4AAAAAAB2FcwAAAAAA6CicAwAAAABAR+EcAAAAAAA6CucAAAAAANBROAcAAAAAgI7COQAAAAAAdBTOAQAAAACgo3AOAAAAAACdaq0NnQEAAAAAAJaGK84BAAAAAKCjcA4AAAAAAB2FcwAAAAAA6CicAwAAAABAR+EcAAAAAAA6CucAAAAAANBROAcAAAAAgI7COQAAAAAAdBTOAQAAAACgo3AOAAAAAACdHUMHWDW7rvxaGzpD75OXnb13+LuvfesBkyyfV5zz8r3DP3ern1/ztI22ab/cpI3umz5n8s1ZV91kmy7iGL/pM++3d/jTT3vzzDxblWWtx9F62mZe7q1o441mW8+8i1jnNR7wPfs8v/zvPj5zPfO2P8969ulGj7++H7nLEUfP3cYsB7JPz73s3L3D973JA2fOu57X9MWvX7J3+HpXv8Hcebeib563/nnrnOzTe3/ziffv8/wht7zjzHn7z4J5219EH9rvi2Tf/bHR98JmGeIzZK02K9vket514b/sHd6sc4at+Lw5kPOrrd7+w0//1X2e/8GPPn5Ny22V9bTbWt9zG23/60/0t5dOvP/nbWPeufdmOJDPqf59M/k5Oc8izr02eu6z1r5gPece69Gv50C+z2zFufdmrXOrzy/2t73NOG4m+7vTjnn+zHk36z3cZ+uP0/2tdz3tvRn7eIhziI2es29W26zn/Hqt1KvYamvtmw4/9Jo1a5orzgEAAAAAoKNwDgAAAAAAHYVzAAAAAADoKJwDAAAAAEBH4RwAAAAAADoK5wAAAAAA0FE4BwAAAACAjsI5AAAAAAB0FM4BAAAAAKCjcA4AAAAAAB2FcwAAAAAA6CicAwAAAABAR+EcAAAAAAA6CucAAAAAANBROAcAAAAAgI7COQAAAAAAdBTOAQAAAACgo3AOAAAAAAAdhXMAAAAAAOgonAMAAAAAQGdlC+dV9fSqauPhU6qqVdXPTpnvd6vqvIlxD6yqd1TVpVX1pap6d1UdX1Ur214AAAAAAIwcbIXg51TV9ebNUFUPSvKGJK9Lcs8k903y+iTPT/InW5wPAAAAAICB7Rg6wAJ9KMl/S/K/kvzynPmekOSU1tpJ3bj3VlUlObGqnthau3ILcwIAAAAAMKCD6YrzS5L8ZpITquqH5sx34yQ3m3JblpOTPCRJbVE+AAAAAACWwMFUOE+Slyb5lyQvrqpDZ8zzl0nun+RjVfXcqnpYVX1na+3S1to/ttZ2LywtAAAAAAALd1AVzltrLckvJfn+JI+bMc+zkjwiyTlJjk9yWpLPVNX7q+pei8oKAAAAAMAwDqrCeZK01s5K8sdJfr+qjpgxz2mttYcmuV6So5I8Mcl1k7yxqm6yqKwAAAAAACzeQVc4H3tGkkuTPLcfWVW3rKrXVNWNkqS1dlVr7aOttT9Jcq8khye5y+TKquqEqjqzqs586ckv2/r0AAAAAABsmR1DBxhCa+3yqnp8kr9NckY36YtJHp7kTUleMbHY5eO/X5iyvp1JdibJriu/1jY7LwAAAAAAi3NQFs6TpLX2pqp6bUb3M/+P8bhLquqkJM+vqusleUuSyuh2LU9O8qHsW2gHAAAAAGDFHLSF87FfT3L/iXG/keT9SX41ydOSXC3Jp5L83yQvaK1dsciAAAAAAAAs1soWzltrT0/y9PHwcTPmuSDJdSbGtSSvHj8AAAAAADjIHKw/DgoAAAAAAFMpnAMAAAAAQEfhHAAAAAAAOgrnAAAAAADQUTgHAAAAAICOwjkAAAAAAHQUzgEAAAAAoKNwDgAAAAAAHYVzAAAAAADoKJwDAAAAAEBH4RwAAAAAADoK5wAAAAAA0FE4BwAAAACAjsI5AAAAAAB0FM4BAAAAAKCjcA4AAAAAAB2FcwAAAAAA6CicAwAAAABAR+EcAAAAAAA6CucAAAAAANBROAcAAAAAgI7COQAAAAAAdKq1NnQGAAAAAABYGq44BwAAAACAjsI5AAAAAAB0FM4BAAAAAKCjcA4AAAAAAB2FcwAAAAAA6CicAwAAAABAR+EcAAAAAAA6CucAAAAAANBROAcAAAAAgI7COQAAAAAAdHYMHWDVXLn7qjZ0ht5XLtu1d/ha1z58TfNNzjtvWpJ86twv7B2+4fWvOXMbk8vNyza5zXnrmWet65mc7+JLv7Z3eN5r2l+2vm1ucfNvW3POedvvt9Gvf3Le9bTppLVuo8+Z7PsaJ5ebfP19nnnr2aiN5p7M9qcnvWufaXe95y32Dt/jR28+c7n1HO+Tznj7uTO30Zv3Gt/3wQv3mTZvPfPWOa9tJr3+rz68d/jYn//BmctNtv96+o151vp+69s3SW76366zpiyTbTqpX8+keftm3vb7tlrPvljP+7/Pc6fbHzFzPZPr6JebPL4m27ifvr9jrDc5b+/T53957/Bk7vWYPB43exuT63/nGf++z/OfeNj3z1y2f0+9928/sc+0J/7RA2YuN6+/O+k3/m7v8PNf+9P7TJv3eb+ez5u1rnPyOFlPG6/1vTHvvTDZNv3+nte/T9ro+c3ktL493vm2T+0z7deeeJeZ25/3mbbRz/71LDfvPbSefdObd7ztT7/ev3j5e/eZdtd7fNfe4Vf9xQf2mbbWNl5PPz2p38fz+tuNmmy3ef3Nes7hevNe/3q2t56+sDfvfTPvfTv52Tuv/ef1Tes5bvvXOO+8aH/67Gs915hcbl7/up5j4UC+F82ynraYZz3fJzb6/XXeueZkW631HGI952w/fv0/2Dv8liuePnf78z6n13rOPNmHzntPzzvXXc/5ZW/eetbz+T5po+cw8/r7jX7v36xziFlZkrUfC5Pm1SEmree77kZtVo1oo9vbqte1GTaj7jfP/r6/7dp1xd7hww+/2prWuVk2az8duuOQmjXNFecAAAAAANBROAcAAAAAgI7COQAAAAAAdBTOAQAAAACgo3AOAAAAAAAdhXMAAAAAAOgonAMAAAAAQEfhHAAAAAAAOgrnAAAAAADQUTgHAAAAAICOwjkAAAAAAHQUzgEAAAAAoKNwDgAAAAAAHYVzAAAAAADoKJwDAAAAAEBH4RwAAAAAADoK5wAAAAAA0FE4BwAAAACAjsI5AAAAAAB0FM4BAAAAAKCzEoXzqjqjqlr3uLKqPltVL6qqG3TznTcxX/+4aDzPkePnxw32ggAAAAAAGMyOoQNsovckedR4+GpJbpfk2UnuUVU/0lq7bDztj5O8YMryV259RAAAAAAAlt0qFc53tdbO655/oqrel+TjSZ6a5LfG4780MR8AAAAAAOy1ErdqmaW1dm6Sv07y6KGzAAAAAACwPax04XzsQ0m+s6quO3QQAAAAAACW38FQOL9o/Pca478nVtWuKY/HDhUQAAAAAIDlsUr3OJ/luklakovHz1+Y5M+mzHfRlHEAAAAAABxkDoYrzn8wyQdaa7vHzy9prZ095fGljW6gqk6oqjOr6syTT965KaEBAAAAABjGSl9xXlW3SPKQJE/dyu201nYm2ZkkV+6+qm3ltgAAAAAA2FqrVDg/vKqO3DOc5LZJnp3krCQv6Oa7bjffPlpr53VPb1NV95mY5auttXdvSloAAAAAAJbSKhXOfzjJuePhq5JckOR1SZ7WWvtGN9+Txo9vUlVX654+ZfzonZXk+zYlLQAAAAAAS2klCuettXuscb4j1zDbeUnqAOIAAAAAALCNHQw/DgoAAAAAAGumcA4AAAAAAB2FcwAAAAAA6CicAwAAAABAR+EcAAAAAAA6CucAAAAAANBROAcAAAAAgI7COQAAAAAAdBTOAQAAAACgo3AOAAAAAAAdhXMAAAAAAOgonAMAAAAAQEfhHAAAAAAAOgrnAAAAAADQUTgHAAAAAICOwjkAAAAAAHQUzgEAAAAAoKNwDgAAAAAAHYVzAAAAAADoKJwDAAAAAEBH4RwAAAAAADoK5wAAAAAA0FE4BwAAAACATrXWhs7AFqiqE1prO4fOkSxXlmS58ixTlmS58ixTlmS58ixTlmS58ixTlmS58ixTlmS58ixTlmS58ixTlmS58ixTlmS58ixTlmS58ixTlmS58ixTlmS58ixTlmS58ixTlmS58ixTlmS58ixTlmS58ixTlmS58ixTlmS58ixTlmRz87jifHWdMHSAzjJlSZYrzzJlSZYrzzJlSZYrzzJlSZYrzzJlSZYrzzJlSZYrzzJlSZYrzzJlSZYrzzJlSZYrzzJlSZYrzzJlSZYrzzJlSZYrzzJlSZYrzzJlSZYrzzJlSZYrzzJlSZYrzzJlSZYrzzJlSZYrzzJlSTYxj8I5AAAAAAB0FM4BAAAAAKCjcL66lubeQlmuLMly5VmmLMly5VmmLMly5VmmLMly5VmmLMly5VmmLMly5VmmLMly5VmmLMly5VmmLMly5VmmLMly5VmmLMly5VmmLMly5VmmLMly5VmmLMly5VmmLMly5VmmLMly5VmmLMly5VmmLMly5VmmLMkm5vHjoAAAAAAA0HHFOQAAAAAAdBTOV0hV/VhV/cF4+BZV9f6q+nRVPXeBGQ6pqpePt/uhqrrLgFmuVVV/U1XnjLd/p6GyTOQ6pKreXVUPGDpPVZ1ZVWePH68ZMk9VnVBV51bVx6vqQQNneWbXLmdX1YVV9cMDHcdVVS8e5/hIVd1z4LY5rKr+Yvy+OrOqbjPge3y/fV5VHV9V542Pq3svIks37vVVdetFZ5nMU1XfW1UfrKpPjDN96yLzTGS5R1V9eLzN11TVYYvMMpmnG3e7qjq/ez5E29x1vM09/c4jF5llSp5rjI+XT1XV26rq+ovMM5HlI127fKKq3rvILFPyfHdVvWuc541Vda1F5pnIcttxX/zxGp1/7VhEllrH+d4i2mVanm7aQvviGW0zWD88I88gffF+9tPC++EZbTNIXzwjy2D98Iw8g/TFM7IM1g/PyDNUX7zm77sLaptvytNNW3RfPK1thuyLp+UZqi+et5+G6Iuntc1QffG0LEP2xdPyDNUXT8syZF88Lc/W9MWtNY9t/khSSU5K8rkkfzAe9/okDxlPe2OSey4oy8OS/L/xdm+T5N8GzHJikt8ZDz8oyelDZZnI9cQklyZ5wJB5khya5K0T44baVzdP8uEk35rkFkk+sQz7apzte5P83YBtc98krx8PHzVupyGPm19K8ufj4dsmecui86y1z0vy7UnOTnLtJEcm+diCstwxyV8maUluPR635Vnm5PmbJP99PPzsJE8ZsG3OSXKL8fBfJnn4kG0zHn9okn9IctGi9tWMtvm5JL8wMd+Qx82JSZ7ZDf/PodpmYvozkvz8wG1zapIfHw//7yRPGvC4+eckd+6yHLegLGs631vgfpqWZ5C+eEaWQfrhOXkG6YunZRmPX3g/PKdtBumLZ2QZpB+et6+66Qvri2e0zSD98Jw8Q/XFa/q+u8C2mZZnqL54WpYh++JpeYbqi78py3h4qL54WtsM1RdPyzJkXzx1X3XTF9kXT2ubIfviaXm2pC/eEVbFW/YMVNWhSe6U0YdCq6rXJrlfkrctIMeNkryijY7Uj1bVDZNcb6Asb07yqfHwdZN8JcldBsqSJKmqm2dUCD09ow+mofZTktw4yYVdtiHzPDTJKa21ryb5alU9KqOTvsH2VedPMzqp2nOiteg8VyW5RlVdLaP30lcz7HFzuyRvSpLW2r9V1W2S7Bggz1r6vBsleWNr7bIkl1XV56rqVq21c7Yqy9jFSf5PRl+m9rj3grJMy3N4Rl/wkuRdSX5igXkms/xma+1T4+P5W5N8eYFZpuVJkicneXWS7x8/H6ptbprk3RPjhmybH8vofZSMirU3WGCeafspVXWLJPdprd25qn5qQVmm5bkqo5PvZHR+8YkM1zZHttb+eTz81iSPTvL1BWRZ6/neovrhaXmG6ounZflchuuHp+V53EB98TdlqarKcP3wtLYZqi+eluXHM/rekCy+H566r8bv70X3xdPaZsh+eFqeGw7UF6/1++6i+uLJPF/OcH3xtCzfnuH64ml5hjovnpYlGa4vnpZnqL54WpYhz4ln7ashzounZRmyL56W545b0Re7VcsKaCOnJ/nQeNQNknxx/GGeJBdk9GG5iCwvbK29Lkmq6jFJvpTkCwNl+ZfW2ueq6gNJXpnkDRmoXTrPz+iK85YB99PYzZLcrkb/xfA9Se46YJ7vTnLTqnpPVX1w/HzofZWqumuSXUkuGjDP2zIqRnw+yT8l+bMBsyTJR5M8sEbuNt72lxaZZx193k2TfKZbdNOzTcmS1tr543GXdrNueZY5ee7bWruyqq6R5Ncy+qIwVNu8YXzcXJLkuzK6KmCwtqmqWya5e2vtZd2sg7RNRn3y71TVx6rqlVV17UVkmZPnRkmeWFVnJXlFkssWkWdGlj2emuQ54+Eh2+akJCdX1aVJjkny2kXkmZHlszW6TcAhGX2x21P42+osaz3fW9R+mszziaH64hlZBumH5+R5/RB98bQsGZ3zLbwfnpNnkL54RpbvyAD98Kw83ft7oX3xjLYZpB+ek+czA/XFa/2+u6i2mczzigH74mlZhuyLp+UZ5Lx4Wpahzoln5clwffG0LIOcE8/Js8ei++JpWYbsi6fl2ZLzYoXz1dSS7J54fuWiNl5V31JVJ2f0YfRzQ2ZJktbaHTL6L2p/MGSWqvqFJO9p//UvW4PupyT/meQlSX4gyWMzuh3JUHmukeSWSe6e5BFJXj5glt4vZXTF+ZD76oQkn8yo079dkhdn9C+7Q2RJkpMz+t8SZyX51STnZnQV/FB59mxz2v4Z+j3WG7pfvkOSMzP6cnfKkHlaa+9Icv2M/iHoyUNlGV/l+Pwkvz4ZcYg8Sd6f5HczuiLr0xn918shj5tvT3JOa+2oJO8dOk+N7pl454z+N9KebQ/VNi/K6L+lXj+jPnHItvnFJH+U5APjbf7norKs8XxvYe0ykee4GbMN0TbHjccN1g9PyzNUXzyR5eczcD88pW0G64unZBm0H55xHA/SF0/JMmg/PCXPYH1xsqbvuwv9jOryvHjWLIvKM5ll6HPiyTxDnhdPZBn8nHgiz6DnxRNZBj8nnnIcD3ZePJFl8HPiiTxb0hcrnK+mSzPqfPe4cUadzZarqmsmeUdGhbQfSPK+AbOcVFU3SZLW2j9ldLuCGwyRZeweSX62qs7O6L+FPSujTnioPGcneUFr7YrW2geSfCSjwuwQeb6Y5G9aa7taa5/IqCh7+4GyJNn7YXT3JGdkwPdURvvktNba7tbaRzJqm6H2U5LcJMnTWmu3yei/Pl2Z0RXxQ+VJZu+fz46HJ8cPYbAsNfoBlL9O8pTW2uNaa1cNkaeqblxVz0uS1trujP6r7E2HyDJ2rYzeS3897pdvUFX/OmCeV7bW3jm+SuyVSb5vwCzJqF9+7Xj49UluNXCeRyb5++4quiGz3Ly19qbx8Ksz+v2JwY7j1tpdWmu3S/LOjP5X0JZnWcf53kLaZTJPa+1TM2ZdeNu00X/DH6wfnrKvdg3VF0/JcnEG7IdnHDeD9MUzsgzWD895Ty28L56RZbB+eEaeofritX7fXVTbfFOe8YUKkwZpm4H74sk8t6iq54+fL7ovnszybRm2L552HJ86UF88LcuQffGs99QQffG0thmyL56W59pb0RcrnK+g1tqVST5YVfes0b1/H53RD4MswmOTvLO19sRxEXTILIcm+ckkqaqjM7r/0QcGypLW2rGtte9prd06ow73MUneN1SejK6Q+MMkqarvyujeVH87UJ63JnlAVR1aVTfOqKA1VJY9js7oWL5y4OP4wxn9kGyq6jsz2k9vHLBt7pPk6ePhxyT52wzXNknm9nlvTvLgGv0S+q2SfGtrbajC+ZBZnpvRlQB/O3CeS5I8tKpuOn7+kCTvGShLWmuXtdaOaK3detwvX9Ja+6Gh8iR5T1Xt+UexH8uAbTP21iQPHg/fJ6MrbIbMc6+Mf19hbMgs/1FVdx4P3zujq6KGyvO/q+roqrp6Rudgf7WgLGs931tUu+yTZ858C2+b8bgh++HJPEP2xZPHzdD98LR9NVRfPC3LkP3wrPfUEH3xtCxD9sPT8gzVF6/1++6i2mYyz3ldYa83RNucl2H74sk8707ykIH64sksHx24L562r949UF88LcuQffGs99QQffG0thmyL56W54+2oi/246Cr6ylJXpPR1T+ntNbet6Dt3inJj1bV/bpxDxkoy7OSvKqqHpvRl4THJPnGQFlmGWo/JckLMmqfT2b0QwrHZ/TjVQvP01p7U1X9SEZXU1+e0S1SLhgiS+fojK6g22OofXVykhdX1TkZ/bDF45P8x0BZktGP+zy4qs7N6BYyj8joNjJDv6+m7p+qemFG//jwjYz+S/ggWmsXD5GlRj82dFSSU+u/Lvh5fWvttxedp7X2jap6QpJ/qKqW0dVaL2+tXbEs+2mcc5B9ldHJ3anjL7ofSXJ8a+2yAdvm15OcUlXPTHJOkp9rrX15wDxHZ3R7qCSD7qdk9Hn551V1vST/nuTY1toXBsrzpCQvTXLNJC9qrb0/WUjft+bzvQW1yzflGX/538eCjpvJLFfL6F6tQ/XD0/bVUH3xMu2nqXkyOgcdoi+eluWeGa4fnrWvhuiLp7XNIzJcPzwtzy9kmL54zd93F9Q20/J8kwUdN5NZfjmj73ZD9cWTeX4xo/uaD9EXL9N+mpXnBhmmL56W5QsZri+eta+G6IunZTkkw/XF0/JcJ1vQF9f0fwAEAAAAAICDk1u1AAAAAABAR+EcAAAAAAA6CucAAAAAANBROAcAAAAAgI7COQAAAAAAdBTOAQBgBVXV9avquVX1qar6elVdWlWnV9UPH+B6z6uq4zYpJgAALCWFcwAAWDFVdeMk/5rkfkl+I8ltk/x4kv9M8vaqOnq4dAAAsPx2DB0AAADYdC9MUknu3Fq7bDzunKp6Z5K/T/KiJHcYKhwAACw7V5wDAMAKGV9t/mNJ/rQrmidJWmstyROS/ElVHVJVd62qd1XV5VV1blX9YVVds1vXLavqH8bTL6iqJ01sq6rqqePbt3ytqs6sqod204+rqkuq6qFV9dHxLWM+WFV33NpWAACAA6NwDgAAq+VOGV1t/i/TJrbWzm6tvSLJzZL8Q5IPJTk6yc8neVCS1ydJVe1I8qYkV0tynyQPT/KwJDftVvebSX4rye+Ot/vSJKdV1U9181w3yYlJfjnJXZMcmuTFB/4yAQBg67hVCwAArJZrj/9+YT/z/WaSj7fWHrdnRFX9YpJ3V9Udktw6yRFJfqS1dsl4+qOSnDsePizJU5Oc2Fp75XgVH6uq22ZUTH/1eNyhSY5vrX1wvNyLkzzngF4hAABsMVecAwDAavnS+O93TJtYVYdW1XWT3DHJWyYmv3/891bj6R/bUzRPktbap5N8dvz0FkmuNWUd7xsvv3exjK5q3+OyJNdYw+sAAIDBKJwDAMBq+cD47w/MmH58ks8nuX6Sb0xM21PQ/mJGt2i5asryh07MO7mOa46X3+Oq8b3VAQBg21A4BwCAFdJauyCje5c/sf+hz2Tv7VV+Jckbk7w3yV0mFr9nkt1JPpzkI0m+r6q+rVv+uzO6fUuSfHI877R1fCAAALCNucc5AACsnscl+eckZ1TVM5Kck+QmSX4nyQ2TPDCjAvi/VtUfJnnVePrzk7y8tXZBVZ2a0Y9+/mVVnZjRD46elORrSdJa+8r4fuXPrqrLxts4JslDk9x9Ya8UAAC2gCvOAQBgxbTWPpnkThldNX5yko8m+T9JPpXkB1prn22tnZnkYUkelNHV5y9J8vokvzZex+VJHpDRxTZvS/LKJC9Ocna3qackOTXJC8freFSSR7bW3rnFLxEAALZUud0gAAAAAAD8F1ecAwAAAABAR+EcAAAAAAA6CucAAAAAANBROAcAAAAAgI7COQAAAAAAdBTOAQAAAACgo3AOAAAAAAAdhXMAAAAAAOgonAMAAAAAQOf/A/3Tt9yeFW/6AAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 1800x1440 with 5 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "matrix_snp,matrix_ins, matrix_del, matrix_neutral, fig=pegg.matrix_rep_library(ranked_filtered,gene_name,start_end_cds,strand, plot=True);\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "cfa18793",
   "metadata": {},
   "source": [
    "# Case Study 3: Modeling ClinVar Variants\n",
    "\n",
    "PEGG also includes a built in tool that allows users to put a list of ClinVar variants in the correct format for interpretation by PEGG. This is done using the **pegg.clinvar_VCF_translator()** function, where users provide a .vcf.gz file and a list of Variation IDs that correspond with the variants they want to translate. See the below codeblock for the precise syntax.\n",
    "\n",
    "ClinVar VCF files can be accessed here: https://ftp.ncbi.nlm.nih.gov/pub/clinvar/\n",
    "A sample vcf.gz file is provided in the [reference files dropbox](https://www.dropbox.com/sh/h6fdvpv3tyny27q/AADYVOkJe12XZiD4pf3_WXuga?dl=0) as well.\n",
    "\n",
    "A useful resource for parsing ClinVar .vcf files (e.g. if the provided function is not function) is the cyvcf2, which is a python package for reading vcf files. More information on that is available at the following tutorial: https://www.genomoncology.com/blog/parsing-variants-using-the-cyvcf2-library"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "81e92cfd",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[W::vcf_parse] Contig '1' is not defined in the header. (Quick workaround: index the file with tabix.)\n",
      "[W::vcf_parse] Contig '2' is not defined in the header. (Quick workaround: index the file with tabix.)\n",
      "[W::vcf_parse] Contig '3' is not defined in the header. (Quick workaround: index the file with tabix.)\n",
      "[W::vcf_parse] Contig '4' is not defined in the header. (Quick workaround: index the file with tabix.)\n",
      "[W::vcf_parse] Contig '5' is not defined in the header. (Quick workaround: index the file with tabix.)\n",
      "[W::vcf_parse] Contig '6' is not defined in the header. (Quick workaround: index the file with tabix.)\n",
      "[W::vcf_parse] Contig '7' is not defined in the header. (Quick workaround: index the file with tabix.)\n",
      "[W::vcf_parse] Contig '8' is not defined in the header. (Quick workaround: index the file with tabix.)\n",
      "[W::vcf_parse] Contig '9' is not defined in the header. (Quick workaround: index the file with tabix.)\n",
      "[W::vcf_parse] Contig '10' is not defined in the header. (Quick workaround: index the file with tabix.)\n",
      "[W::vcf_parse] Contig '11' is not defined in the header. (Quick workaround: index the file with tabix.)\n",
      "[W::vcf_parse] Contig '12' is not defined in the header. (Quick workaround: index the file with tabix.)\n",
      "[W::vcf_parse] Contig '13' is not defined in the header. (Quick workaround: index the file with tabix.)\n",
      "[W::vcf_parse] Contig '14' is not defined in the header. (Quick workaround: index the file with tabix.)\n",
      "[W::vcf_parse] Contig '15' is not defined in the header. (Quick workaround: index the file with tabix.)\n",
      "[W::vcf_parse] Contig '16' is not defined in the header. (Quick workaround: index the file with tabix.)\n",
      "[W::vcf_parse] Contig '17' is not defined in the header. (Quick workaround: index the file with tabix.)\n",
      "[W::vcf_parse] Contig '18' is not defined in the header. (Quick workaround: index the file with tabix.)\n",
      "[W::vcf_parse] Contig '19' is not defined in the header. (Quick workaround: index the file with tabix.)\n",
      "[W::vcf_parse] Contig '20' is not defined in the header. (Quick workaround: index the file with tabix.)\n",
      "[W::vcf_parse] Contig '21' is not defined in the header. (Quick workaround: index the file with tabix.)\n",
      "[W::vcf_parse] Contig '22' is not defined in the header. (Quick workaround: index the file with tabix.)\n",
      "[W::vcf_parse] Contig 'X' is not defined in the header. (Quick workaround: index the file with tabix.)\n",
      "[W::vcf_parse] Contig 'Y' is not defined in the header. (Quick workaround: index the file with tabix.)\n",
      "[W::vcf_parse] Contig 'MT' is not defined in the header. (Quick workaround: index the file with tabix.)\n"
     ]
    }
   ],
   "source": [
    "#this is the filepath to the .vcf.gz file (needs to be updated according to user)\n",
    "filepath = '/Users/samgould/Desktop/FSR Lab/reference files/clinvar_20221001.vcf.gz'\n",
    "variation_ids = [925574, 925434, 926695, 925707, 325626, 1191613,308061]\n",
    "clinvar = pegg.clinvar_VCF_translator(filepath, variation_ids)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "a1c396bf",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Hugo_Symbol</th>\n",
       "      <th>Chromosome</th>\n",
       "      <th>Start_Position</th>\n",
       "      <th>End_Position</th>\n",
       "      <th>Reference_Allele</th>\n",
       "      <th>Tumor_Seq_Allele2</th>\n",
       "      <th>Variant_Type</th>\n",
       "      <th>Variation_ID</th>\n",
       "      <th>Allele_ID</th>\n",
       "      <th>CLNSIG</th>\n",
       "      <th>CLNHGVS</th>\n",
       "      <th>CLNDN</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>MSH6</td>\n",
       "      <td>2</td>\n",
       "      <td>48010028</td>\n",
       "      <td>48010028</td>\n",
       "      <td>G</td>\n",
       "      <td>T</td>\n",
       "      <td>SNP</td>\n",
       "      <td>1191613</td>\n",
       "      <td>1179546</td>\n",
       "      <td>Likely_benign</td>\n",
       "      <td>NC_000002.11:g.48010028G&gt;T</td>\n",
       "      <td>not_provided</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>KRAS</td>\n",
       "      <td>12</td>\n",
       "      <td>25358662</td>\n",
       "      <td>25358663</td>\n",
       "      <td>CT</td>\n",
       "      <td>C</td>\n",
       "      <td>DEL</td>\n",
       "      <td>308061</td>\n",
       "      <td>331617</td>\n",
       "      <td>Uncertain_significance</td>\n",
       "      <td>NC_000012.11:g.25358670del</td>\n",
       "      <td>Cardio-facio-cutaneous_syndrome|Noonan_syndrome</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>TP53</td>\n",
       "      <td>17</td>\n",
       "      <td>7571192</td>\n",
       "      <td>7571192</td>\n",
       "      <td>G</td>\n",
       "      <td>C</td>\n",
       "      <td>SNP</td>\n",
       "      <td>925574</td>\n",
       "      <td>914159</td>\n",
       "      <td>Likely_benign</td>\n",
       "      <td>NC_000017.10:g.7571192G&gt;C</td>\n",
       "      <td>Hereditary_cancer-predisposing_syndrome</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>TP53</td>\n",
       "      <td>17</td>\n",
       "      <td>7571198</td>\n",
       "      <td>7571198</td>\n",
       "      <td>G</td>\n",
       "      <td>A</td>\n",
       "      <td>SNP</td>\n",
       "      <td>926695</td>\n",
       "      <td>914160</td>\n",
       "      <td>Likely_benign</td>\n",
       "      <td>NC_000017.10:g.7571198G&gt;A</td>\n",
       "      <td>Hereditary_cancer-predisposing_syndrome</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>TP53</td>\n",
       "      <td>17</td>\n",
       "      <td>7571206</td>\n",
       "      <td>7571206</td>\n",
       "      <td>G</td>\n",
       "      <td>A</td>\n",
       "      <td>SNP</td>\n",
       "      <td>925707</td>\n",
       "      <td>914161</td>\n",
       "      <td>Likely_benign</td>\n",
       "      <td>NC_000017.10:g.7571206G&gt;A</td>\n",
       "      <td>Hereditary_cancer-predisposing_syndrome</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>TP53</td>\n",
       "      <td>17</td>\n",
       "      <td>7571224</td>\n",
       "      <td>7571224</td>\n",
       "      <td>C</td>\n",
       "      <td>T</td>\n",
       "      <td>SNP</td>\n",
       "      <td>925434</td>\n",
       "      <td>914166</td>\n",
       "      <td>Likely_benign</td>\n",
       "      <td>NC_000017.10:g.7571224C&gt;T</td>\n",
       "      <td>Hereditary_cancer-predisposing_syndrome</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>TP53</td>\n",
       "      <td>17</td>\n",
       "      <td>7572147</td>\n",
       "      <td>7572148</td>\n",
       "      <td>AG</td>\n",
       "      <td>A</td>\n",
       "      <td>DEL</td>\n",
       "      <td>325626</td>\n",
       "      <td>346158</td>\n",
       "      <td>Uncertain_significance</td>\n",
       "      <td>NC_000017.10:g.7572148del</td>\n",
       "      <td>Li-Fraumeni_syndrome</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  Hugo_Symbol Chromosome  Start_Position  End_Position Reference_Allele  \\\n",
       "0        MSH6          2        48010028      48010028                G   \n",
       "1        KRAS         12        25358662      25358663               CT   \n",
       "2        TP53         17         7571192       7571192                G   \n",
       "3        TP53         17         7571198       7571198                G   \n",
       "4        TP53         17         7571206       7571206                G   \n",
       "5        TP53         17         7571224       7571224                C   \n",
       "6        TP53         17         7572147       7572148               AG   \n",
       "\n",
       "  Tumor_Seq_Allele2 Variant_Type  Variation_ID  Allele_ID  \\\n",
       "0                 T          SNP       1191613    1179546   \n",
       "1                 C          DEL        308061     331617   \n",
       "2                 C          SNP        925574     914159   \n",
       "3                 A          SNP        926695     914160   \n",
       "4                 A          SNP        925707     914161   \n",
       "5                 T          SNP        925434     914166   \n",
       "6                 A          DEL        325626     346158   \n",
       "\n",
       "                   CLNSIG                     CLNHGVS  \\\n",
       "0           Likely_benign  NC_000002.11:g.48010028G>T   \n",
       "1  Uncertain_significance  NC_000012.11:g.25358670del   \n",
       "2           Likely_benign   NC_000017.10:g.7571192G>C   \n",
       "3           Likely_benign   NC_000017.10:g.7571198G>A   \n",
       "4           Likely_benign   NC_000017.10:g.7571206G>A   \n",
       "5           Likely_benign   NC_000017.10:g.7571224C>T   \n",
       "6  Uncertain_significance   NC_000017.10:g.7572148del   \n",
       "\n",
       "                                             CLNDN  \n",
       "0                                     not_provided  \n",
       "1  Cardio-facio-cutaneous_syndrome|Noonan_syndrome  \n",
       "2          Hereditary_cancer-predisposing_syndrome  \n",
       "3          Hereditary_cancer-predisposing_syndrome  \n",
       "4          Hereditary_cancer-predisposing_syndrome  \n",
       "5          Hereditary_cancer-predisposing_syndrome  \n",
       "6                             Li-Fraumeni_syndrome  "
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "clinvar"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b723e17a",
   "metadata": {},
   "source": [
    "**Once we have the ClinVar variants in the correct format, we can generate pegRNAs, visualize the results, and generate oligos, as shown before.**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "188d0bdd",
   "metadata": {},
   "outputs": [],
   "source": [
    "#select list of mutations to model\n",
    "mut_idx_list = range(len(clinvar))\n",
    "PAM = 'NGG'\n",
    "\n",
    "RTT_lengths = [10, 15, 20, 25, 30]\n",
    "PBS_lengths = [5,7, 10, 12]\n",
    "\n",
    "guides_per_mut=1\n",
    "\n",
    "ranked_filtered = pegg.run(clinvar, mut_idx_list, records, index_list, minus_seqs, chrom_dict, PAM, RTT_lengths, PBS_lengths, guides_per_mut)\n",
    "\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "02c8d67e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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uZm72/EAUFGMMftcrR0XF6e0tLS9zZs333XppZduvO666zaHel2XLl2a/fzzz2m1a9fOX7Vq1dyEhNBlwnPPPbfRJ598UkOS/u///m/t448/viZU3NNPP13j5ptvbiRJxxxzzPZp06YtPJD1QuwI5wpmGWPiJc2UdLikZx3HmepqVgAAAAAO2KJFK9WyZeOw4/9atk6tmtVzpW3b9m1iI8nHtv0V039QvTbHqlpWQyVVSdPGpQtVs3Hzcmnblm37bva729zM3e14AN7hxSko3JjCY9CgQWslKT8/3/z111/JEyZMyJg6dWrqzJkzK7/yyiurAmN///33pF9++SXNGKP169cnfvjhh9UuvPDCraW1Hx8f77z77rs1H3300TWhitFvvPFGzfj4eKegoMCU64rB88K6yZ/jOAWO47SVVF9SJ2PMUcExxpiBxpgZxpgZL730UjmnCQAAAOBADR36ss4551b163dHTLUdifLOZ8lP49W4yz8lSU269NTSKePLpV0AAMrLiBEj1owYMWLN008/vfrrr79e8vHHH/9pjNFrr71We+HChUmBsc8++2ym4zi67rrr1knSyy+/HHp+qADdu3ffun79+sSPPvqoWvBzs2bNqjRr1qyqPXr0KLVIjYNTWAXmIo7j5Ej6XtKpIZ57yXGcjo7jdBw4cOA+z73zzjvq06eP+vTpo/Xr15f5Pm7GeykXco+NeC/lEsu5eykXco+NeC/lQu6xEe+lXMg9NuK9lItbuR9+eAMtWLC0+Od77rlar776b23Zsi1kfLPDauu3v1aXmWskbdu2bxMbST427eflbtXa+TM15aVh+vDGczXvi1Fa+vNE+WYTPPDcbdm272a/u83N3N2Oj4QXjhtejPdSLuQevXjY69OnT27jxo3zHMfRlClTqhQtz8/P1wcffFCjatWqBcOHD19z5JFH7pw8eXK1pUuX7n+n1QD9+/ffXKlSpcJXXnmlZvBzzz33XE1JuvLKKzeW/5rA60xJH4qKA4zJlJTvOE6OMSZF0jhJwx3HGVPKy5ijGQAAAKhgje78svj7v/7TUI7jqH//IerTp7suuMA3N/Hatdm69NL7NG7c85KkxFV/Fb/GcRz1/b/ndP6px6jvaZ0kSXMXrlTe7nx1OrqJJCm/frPi2LLajqT9SHIJNx/bXIbldJUk/THhU21a+qeOv/pfxa//6oEb1L7v1arTsq0k6c70yVZtL5ncVqGUdEO4Jl1nR9SPtvFu5F6S8l5XN/sl3PhQfRNqPXssWFD8/bJhZ5TYR8AhLKwpFubMmbOsTZs2IQuagVNQeH2KjAPNr2gOZsdx9munSZMmrZYuXVrptddeW3L55ZdvkaQ333wz/bLLLmt6wQUXbHz33XeX//e//611zz33NLjtttvWPProo2uD2yiag3n06NF/vvXWWzU+//zz6osXL5532GGH5UvSrl27TFZW1tHNmjXLe+2115a1bt36KOZgPjjNmTOnZps2bRoFLw9nDua6kt70z8McJ+mDMorLAAAAADzAGKOnnrpDw4e/rtdf/0wZGWlKSUnWoEEXlRj/zH0X66EXxuilDyYpOTFB9Wpn6K5rex1w25G0H26s2+u6dMoEte6zbzuNOp2oJVPGFxeYDyR3W5H0jVv97ja3txk34wEg2j799NPUZcuWVTLG6Pjjj99RtPyVV17JlP6+2vjKK6/c9MADD9QfNWpUzWHDhq2Nj48vsc1rrrlm4+jRo2u88MILNR5++OF1kvT222+n5+TkJFx++eXZLq8SPKrMK5gjxBXMAAAAQAULvoI5HIFX9YYj8KphN9q34XYuRVcwhyPwCuZwlHQVcEkCr+qNNtvcbXlpXW2F2zdcwQyUiSuYLRRdwRzqJn8FBQW68sor1xfd5O/PP/9MatmyZeuGDRvmLV269LeiNk455ZSm48aNS//www//Ou+88/aZXyrwCuazzjort2nTpq327Nljli9fPj8uLk7HHXfcEb///nvltWvXzlmyZEkSVzAfvA7kCmYAAAAAAAAAHvb444/XlXz/cZGamlrQoUOH3EsvvXTj9ddfv7ko5tlnn61ZWFioCy+8cFPgay+99NKN48aNS3/ppZcygwvMwS6++OKNDzzwQP0vvvgitWnTpnumTp2aeumll26oXLkyF5weoigwAwAAAAAAADEu1BzMgfbu3av33nuvZlxcnK6++up9Csznn3/+1ltuuSV/4sSJ1VasWJHQsGHDvSW1c80112x6+OGH673yyis1GzRosMdxHF1//fVMj3EIo8AMAAAAAAAAHOTee++99A0bNiRKUpMmTY4uKe65556rOWzYsHUlPV+3bt29J5988pZx48ZlVKlSpaBt27Y7jjnmmDw3ckZsoMAMAAAAAAAAHOReffXVmpLUvXv3rZmZmfnBzxcUFJiPP/64xsiRIzMfeuihdXFxcSW2dfXVV28cM2ZM9T179iT8+9//XuVi2ogBFJgBAAAAAACAg9jixYsTf/jhh2ppaWkFY8aMWVzSfMkdOnRInjVrVtXPPvss7eyzzy5xLuZevXrljhw5clFhYaE5++yzt7qXOWIBBWYAAAAAAAActFq/2bpDtHOItmeffTazoKBAZ5999qbSbsZ32WWXbZw1a1bVl156qWZpBea4uDgNGDCAwjIkSSVf6w4AAAAAAAAgphUUFOjdd9+tIUnXXXfdxtJiL7vssi1Vq1YtmDBhQvrq1au5MBVhYUMBAAAAAAAAYpTjODNLez4+Pl5r166dF05bqamphbm5ubMDl3388cfLJC0L5/VHHXXU7rLywcGHAjMAAAAAAAAOKvMunUeRE6ggTJEBAAAAAAAAAIgIBWYAAAAAAAAAQEQoMAMAAAAAAAAAIkKBGQAAAAAAAAAQEQrMAAAAAAAAAICIUGAGAAAAAAAAAESEAjMAAAAAAAAAICIUmAEAAAAAAAAAEUmIdgIAAACxbEGLlhG/tuUfC8oxE2Bfze5dEWZksmXL4bYbafs23M5latiRL1i3bbn/L3CzH225fOzy1Lra4rgOADj0uFNgXvpJ2KH59ZtZNf3Y/LpW8bcetdYqPnHVX1bxNpZMbmsV36D/Dqt4m9xtc/ng6DSreC/1u5tst1/b9bRt34bbfe5m3wzL6WqbjpU70ydbxdvsT7b7ki3b3L3Eze3d1spRVazim3SdbRXv5rq6fZ606Rvb85htv9uyHaeKkJ8/L6w4L50nY/ncZHP+iN3PMrFcmAMOTW6dC2x/57M5T9p+Hnf7mOrm8f1Q/HwSDrd/F1bjc+ziAUQVU2QAAAAAAAAAACLCFBkAAADl5PB5H5QZs6h13wrIBIeqZdfstn7NofQfWba5uPlfG27/x4mbbHO35aV1tWXTN7G8nkAsWNCiZYdo5xCuln8smBntHIADwRXMAAAAAAAAABCkXr16revVq9c6cNlTTz1VwxjT4amnnqpRkbmMGTMm1RjTYfDgwVkV+b7hoMAMAAAAAAAAxKCFCxcmGWM6nHvuuY2inUt56tSpU3NjTMxchS6FLkZXBC/0FVNkAAAAAAAA4KDlxSkoYmkKD+xrwIABOf/4xz9+a9iwYX5Fvm+3bt12zJo167c6dersrcj3DQcFZgAAAAAAAAAIQ40aNQpq1KhRUNHvm5qaWtiuXbu8in7fcDBFBgAAAAAAABBjBg8enNWiRYvWkvTJJ5/UMMZ0KHoUzQ+cl5dnHnroocxu3bodnpWV1TopKal9tWrV2nbp0uWIDz74IC1Uu0VTPWzevDnuqquuql+vXr3WCQkJ7QPn/v3444/T2rdv3yIlJaVdtWrV2vbs2bPpr7/+Wuncc89tZIzpsHDhwqTgdidOnFjl1FNPbVKzZs02iYmJ7evUqXN0//79D1u2bFliUUzRlB/Tp0+vKkmB69SpU6fm4fRLfn6+hg0bltmmTZsWVatWbZeSktKuZcuWRz700EOZBQX714ULCwv10EMPZR5++OGtkpOT29eqVevoSy65pOGmTZviQ7UfPAdz0dzIa9asSVqzZk1SYM7hTF2ycuXKhIEDB9Zv1KjRUSkpKe1SU1PbNmrU6Khzzz230e+//17cj8FzMNv01eLFixMvueSShvXr12+dlJTUPj09vW2PHj0OnzRpUuVw+rQsXMEMAAAAAAAAxJgePXrk5uTkxL/++uu1mjdvvuv000/PKXquY8eOOyVpw4YN8ffee2/Dtm3bbv/HP/6xrWbNmnvXrVuX+O2336b369ev2apVq5YPHjx4Y3Db+fn5pmvXrs1zcnISunbtui01NbWgcePGuyXp5Zdfzrj22mubJCUlFZ5++ulb6tSpkz9t2rSq3bp1a9GiRYtdoXJ98skna9x6662NEhMTC3v27JlTr169/MWLFye///77NSdMmFBtypQpfzRr1mxPjRo1CgYNGrT2/fffr7FmzZqkQYMGrS1qo1GjRrvL6pPdu3ebnj17Hv7jjz+mNWrUKK93796bKlWq5EyZMiX17rvvbjht2rSqn3766dLA11x55ZUN3njjjVqZmZn5F154YXZiYqLzzTffpHfr1q1Kfn6+SUxMdEp7z2bNmu0eNGjQ2pdffrmWJF199dUbip5r167dztJem5ubG3f88ce3WLlyZXKXLl22nXzyyTmO42jlypVJ48ePTz/vvPO2HHnkkXtCvTbcvvrxxx8rn3nmmc22bt2acMIJJ2w7/fTTt2zatClh3Lhx6SeddFKLt99+e3G/fv22lt6zpaPADAAAAAAAAMSYXr165TZr1mz366+/XqtVq1Y7R4wYsSY4JjMzs+DPP/+c27Rp033mC960aVP8scce2+KBBx6oP3DgwE1Vq1bdp4ianZ2dePjhh+f99NNPC9PS0gqLlm/ZsiXu1ltvPSw+Pt6ZOHHiH8cdd1xxQfn666+v9/zzz9cJzmHu3LnJt91222FZWVm7J02atLBx48bFuXz++eepZ5999hHXX399g/Hjxy+uWbNmwYgRI9b8+OOPqWvWrEkKtU6lGTJkSN0ff/wx7ZJLLtnw6quvrkxI8JU+9+7dq/79+x/24Ycf1hw5cuSWiy66KEeSxo8fX+WNN96o1aBBg93Tp09fULt27QJJ2rlz5+ouXbo0z87OTszKygpZ4C3SvHnzPSNGjFjz/vvv15Akm5y/+OKL1JUrVyZfccUVG1599dWVgc/l5eWZXbt2mZJeG05f5efnq3///k127twZ/8UXXyw844wzthc9t2zZssROnTq1vPHGGw/r3bv3vJSUlFIL6aVhigwAAAAAAADgIJSSkuIEF5cl39WvAwYM2Lht27b4H374oUqo1z722GMrA4vLkvTuu++m5+bmxvfp02dzYHFZkh5++OG1qamp+81B8eSTT9bau3eveeSRR1YGFpclqXfv3rk9evTI+e6779K3bNlyQHXKgoICvf7665k1a9bMf+WVV4qLy5KUkJCg5557bpUxRqNGjapetPzVV1+tKUm33nrr2qLisiRVrlzZGTp06OoDycdGSkpKYfCySpUqORkZGfstt/H++++nr1y5Mvmyyy7bEFhclqRGjRrl33TTTes2btyY+Pnnn4ecLiVcXMEMAAAAAAAAHKRmzJhR6eGHH64zderU1I0bNybu3r17n6tiV6xYsd98ycnJyU7nzp33m+7i119/rSxJxx9/fG7wc9WqVSts2bLlzmnTpqUGvX8VSfr+++9Tp02btl8xe9OmTYkFBQWaP39+pX/84x+lTilRmrlz51bKyclJOOyww3bfcccdWaFikpOTCxctWlSp6Od58+ZVlqSTTjppv/U59dRTc+Pj4yO+qjccp556am6tWrXyn3vuuTpz5sypfMopp2zt1q3b9uOOO25nYIE8Uj/99FMVSVq5cmVS4BzaRRYtWpQsSb///nslSRFPk0GBGQAAAAAAADgIffvtt1V69ep1xN69e81xxx2Xe/LJJ+ekpaUVxMXFae7cuSnffvttenDBWZKqV6+eHxe3/wXF27Zti5ekOnXq7A31fpmZmfstz8nJSZCkF198sXZpuW7btu2ArmDOzs6Ol6Tly5cnP/7443VLituxY0fxzftyc3PjJal+/fr75Z2QkKD09PT97wpYjqpXr174008/LRgyZEjW+PHj03/88cc0SUpPT9972WWXZQ8bNmxtcnJyxEXuzZs3J0jS2LFjM8aOHVti3Pbt2w+o7ykwAwAAAAAAAAehoUOH1s3Ly4v74osv/uzVq9c+V+kOGTKkzrfffpse6nXGhJ76t2gKjHXr1oWsKWZnZ++3vOg1mzZt+rV69eoHNOVDaTIyMgok6aSTTsoZN27c4nBeU5TbqlWrEoJvprd3717l5OTE165d27WcJalp06b5H3zwwfLCwsLls2bNqvTNN9+kvfLKK5lPPPFE3cLCQj355JNW81AHSktLK5CkkSNHLhowYMAB3civNMzBDAAAAAAAAMSgoikcCgoKQlaEly1bllytWrWC4OKyJP3444+poV5Tmnbt2u2UpClTpuz32q1bt8YtWLCgcvDy9u3b75CkcePGhf1+Reu1d2/IC6VDatu2bV5qamrB7Nmzq4S6KjuU1q1b75Sk8ePH75fb119/nVpSv4YSFxfn2MSHeL06duyYd/fdd28YP378n5I0duzY9LJeV1pfHXfccTskafLkydZjbYMCMwAAAAAAABCDMjMzC4wxWr169X7zKEtS/fr192zdujV+6tSpKYHLH3/88ZpF0zHYuPDCC3OqVq1a8Nlnn1X/+eef92lzyJAhdYumnAg0aNCgDQkJCc6dd97ZYO7cucnBz+fl5Zmvv/66auCyjIyMvZK0aNGikOsVSmJioq644ooN2dnZiVdccUWD7du371fsXb58eeLMmTOL52C+4oorNkrSY489Vnf9+vXFue/cudPcc8899cJ9b0lKT08v2LJlS0Ko9y3J9OnTKy1cuHC/dVyzZk2iJFWqVKnMq6dL66v+/fvnNGjQYPdbb72V+f7771cL9foJEyZUyc3NZYoMAAAAAAAAIJQFLVp2iHYObqlWrVrh0UcfvWPmzJlVe/fu3bhZs2Z58fHxOvfcc3M6d+6865Zbbln/448/pv3zn/9sccYZZ2xOS0srmD17dpVZs2ZVPfXUU7d8/fXXGTbvV7169cJHH310xfXXX9+4R48eLc4444wtderUyZ82bVrVP/74I+WYY47ZPn369KqB8ze3a9cu78knn1x2yy23NGrfvn2rrl27bmvatGlefn6+WbVqVdKMGTNSMzIy8pcuXfpb0Wu6d+++bezYsRlnn3324T179tyakpJSeNhhh+2+4YYbNpeW3/Dhw9fOmzcvZdSoUZkTJkxI79Kly7asrKz87OzshCVLllT69ddfq95xxx2rO3TosE6STj755B2XXnrphjfffLNW69atW51++ulbEhMTnW+++SY9LS2tIDMzMz/cvunateu2+fPnV+7evfsRXbp0yU1OTnbatm27s3///iVOTTF27Ni0+++/v0G7du22H3744XmZmZl7V69enThhwoT0uLg4DRo0aH1Z71taXyUnJzsffvjh4l69ejW74IILDh8+fPiOVq1a7axcuXLh6tWrk+bMmVN51apVycuXL5+Tmpoa8VQgYRWYjTHLJOVKKpC013GcjjZvkr05Vw+9OEbz/lylpMQE1audrruu6aXG9TP3i924MUePPPKG5s79U2lpVZWYmKDLL++jnj07l9j+8mmTNHHEXTr7sVFKr3dYiXG2bdvkbRu/bec2DRk1RJK0ZccWxZk4Vavs+0PCE5c/ocT4xArL3TaXIrHY727Hu7mutm17qd8j2a9t8wl3e4wkPtxc3N6X3Mw9kngvbTNuxkcyrl5aV8md43Uk/eJm+7bxbp87bNbVS8dr2/hYPjdJdsdTr+Xu5vH6UPk846VjXhG3Pl976VxjG+uldXW7X7z0O5/tccNL6+pmLrH++cRLnwki2cZQspEjRy69+eabG0yePLnamDFjqjuOo/r16+/p3LnzrvPOO2/bqFGjFg0bNqzumDFjqsfFxTlHH330jjFjxiz866+/km0LzJJ07bXXbq5evfrehx9+OOvLL7/MSExMdI455pjcSZMm/TF48OD60t/zIRe5/vrrN3fs2HHX8OHDa//888+pP/74Y1pKSkphrVq18k8//fQtF1xwwT6F40GDBm1cvnx58qefflr9+eefr11QUGCOOeaY7WUVmJOTk53x48cvfv7556uPHDmy5sSJE9N37twZl5GRsbdBgwa7b7/99tVXXHHFpsDXvPbaayuPOOKIvFdeeaXWqFGjMtPT0/eecsopOU888cTqo48++shw++Xhhx9em5OTEz9hwoT0X3/9tWpBQYHOOeecTaUVmHv16rVtxYoV63/55ZfUcePGpe/YsSM+MzMz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V/nEE088vFq1am2NMR0WLlyYFDIZD2KKDAAAAAAAACDGrVixIrlbt24tmjVrtuuiiy7KXrduXeKXX35Z/fzzz2/2wgsvLLn66qu3BMaPHj0644cffqjWtWvXrRdddFH2ihUrkiVp48aN8ccee2yLxYsXVzrqqKN2nn766es3bdqU8OWXX1Y/55xzjhg+fPjy22+/faMknXXWWTmS9Mknn9Q45phjtp9wwgm5Re03a9ZstyTl5eWZbt26HTF9+vSqjRs3zrvkkkuyd+7cGffVV19lXH311U1mz5697plnnlld9Lr//e9/NW+//fbDatasmd+zZ8+tNWrU2JudnZ3w+++/Vx45cmTNO++8Mzt43Xv16tVk3rx5VU4//fQtiYmJzjfffJM+YsSIrF9//bXKhAkTFsXF/X2N7X333VcvLi5Obdu23ZGVlbVn69at8VOmTEm79957G8yYMaPKp59+ujSw7ezs7Ph//OMfzRcuXJjSqFGjvL59+25MSkpyli5dmvzBBx/UPO+883IaNGiQW9R3Xbt2PWLBggWVjzzyyJ19+/bdWFhYaCZNmpR27bXXNv7tt98qPfXUU2uC8582bVqVZ555pk6HDh229+vXb+OmTZsSkpOTnUi2g2igwAwAAAAAAADEuBkzZlQdOHDg+hdffHFV0bLJkydv6NGjR4tbb731sHPPPXdr9erVC4uemzRpUrUPPvjgr/POO29bYDs333xz/cWLF1e68MILN44cOXJ5UXF23rx567p06dLy7rvvbti7d+9tzZs333PxxRfnZGRkFHzyySc1TjjhhNwRI0bsVzx94IEHak+fPr1q165dt06YMGFRYmKiJGn16tVrOnXq1PLZZ5+t06dPn5yTTjpphyS9/vrrmYmJic7s2bN/r1ev3t7AttauXRuylrl48eKU33777bfMzMwCSdq5c+fqLl26NP/uu++qPf/889VvuOGGzUWxY8aMWdSqVavdga8vKCjQ+eef32j06NE1Jk6cuKFHjx47ip674oorGi5cuDClf//+2W+99daK+Pj44tdt2bIlrrCwsPgq6WuuuabBggULKt99992rhg4dur5o+c6dO80pp5xy+DPPPFP3ggsu2NKlS5ddge8/ZcqUtEceeaS4cB9rmCIDAAAAAAAAiHFVq1YtGDZs2D4F3q5du+7s06fP5tzc3Ph33nlnn+ko/vnPf+YEF5d3795tRo8eXb1y5cqFjz/++KrAK39bt269+4orrtiQn59vXn755Rrh5jVq1Kiaxhg98cQTq4qKy5JUr169vbfddttaSXrppZf2mfoiPj7eSUpK2u8K3rp16+4NXiZJt99++5qi4rIkVa5c2Rk6dOhqSXrrrbdqBsYGF5f976fBgwdvkKSvvvqqeEqR1atXJ3z11VfVMzMz859//vlVgcVlScrIyCisUaNGgSStW7cu/rPPPqvRqlWrnYHF5aJ8HnnkkVWO4+itt97ar+9atGixK1aLyxJXMAMAAAAAAAAxr1WrVjszMjIKg5d369Yt95NPPqnx66+/Vpa0qWh5x44ddwTHzpkzp1JeXl5c+/btt9euXXu/CYl79uyZ+9RTT9WdM2dO5XBy2rJlS9yKFSuSa9Wqld+uXbu84OdPO+20bYMHD9b8+fOL2zv//PM3P/DAA/VbtWrV6swzz9xy4okn5v7zn//cnpWVFbK4LEknn3zy9uBlp556am58fLzz+++/75PrunXr4h988ME6EyZMqLZq1arkXbt27XMB7po1a4rnPv7hhx+qFBYWqlOnTtvT0tL269tAP/74Y5WCggIZYzR48OCs4Ofz8/ONJP3555+Vgp9r167dfmMRSygwAwAAAAAAADEuMzMzP9TyrKysfEnatm3bPpff1qlTZ7/4LVu2xEtSrVq1QrZVv379kG2VZPPmzfGl5dawYcP92rv//vvX16xZc+/LL7+c+cYbb9R67bXXahljdMwxx+Q++uijq7p27bqzpLwCJSQkKD09vWDz5s3F9c+NGzfGd+zY8cjVq1cntW7desc555yzqXr16nsTEhKUk5MT//rrr9favXt38ZQXRf1Rt27dPWWta3Z2doIkzZ8/v3JgwTzYjh079ptRonbt2iH7J1ZQYAYAAAAAAABiXHZ2dmKo5WvWrEmUpLS0tH2uSDbG7BebkZFRIEkbNmwI2daqVasSJSk1NXW/q5tDqV69eoEkbdy4MWR7K1asCNnejTfeuOnGG2/ctHHjxvhvv/226ujRo9M//PDDmr179z7it99+mx88N/OqVasSmzVrtk8ReO/evcrJyYmvUqVKcdtPPfVUzdWrVycNGjRobfB80RMmTKjy+uuv1wpcVtQfa9euTVIZ0tPTCyTpyiuvXP/KK6+sKis+UKixiCUUmAEAAMrJotZ9o50CoqD9qP7RTiGkeV0fiHYKAACgAv3222+Vt2zZEhc8TcakSZNSJaldu3b7Xfkb7Oijj86rVKlS4R9//FE5Ozs7PnBeY0n69ttvUyWpbdu2xW0lJCQ4ku9GecEyMjIKGzRosHvVqlXJ8+bNS27duvU+8x9//fXXqZLUunXrkLnVrFmzoF+/flv79eu3tbCwUB9++GHN8ePHV73ssstyAuPGjRtXtVmzZpsDl3399depBQUF5sgjjyxue9GiRcmSdMEFF2wJfq+JEyemBi/r2rXrjri4OE2bNq3qtm3b4kqbJqMo9pdfftmvnYOdKwXm/PrNwo5NXPWXVdt951axik9Mt2vfJndbHxydVnZQgDtXzbaKt8ndNpe+c7eVHRTAS/3uJtvt13Y9bdu34Xafu9k3fSfbbY+28vvb9Y3N/mS7L9myzd1L3NzebX1wdFer+Fs9tG+7fZ606Rvb85htv9uyHaeKEO624KXzZCyfm2zOH7b7hheF25+H0ucZ21zcPOa5fbx2k23utry0rrZs+sbt35lsf+ezOU/afh53e13dPL4fip9PwuH6ucMqGkW2b98ef+edd2a9+OKLxVfPTp48ufJnn31WvWrVqgUDBgzYr6garFKlSs5ZZ521+b333qt52223Zb355psri5777bffkl999dVaCQkJzlVXXVU8l3NmZuZeSVq5cmXIq3z79++/cfjw4fUGDRpU/+uvv16ckOArR65duzbh0UcfzZKkq666qvgGdx999FFanz59tgXeEFD6+yroypUr71fkffTRR7P69u27taggvnPnTnPPPffUk6SLL764ONdGjRrtkaTx48endurUaVfR8ilTpqQ8/fTTdYLbzcrK2nvGGWds/uKLL6pfd9119d96660VgTf627p1a9zevXtNjRo1CurVq7e3d+/emz799NMat99+e92HHnpobfA6/Pbbb8nx8fFOixYtypxyI5ZwBTMAAAAAAAAOWo3u/LJDtHOoCB07dtz+7rvv1pw5c2aVzp07b1+3bl3il19+Wd1xHDNixIjl1atXL/UmdUWeeOKJVVOnTq361ltv1Zo9e3aVE044IXfTpk0JX375ZcaOHTviH3rooRWBBdI2bdrk1apVK3/MmDHVL7jgAqdBgwZ7jDG66qqrNh1xxBF77r///vXjx4+v9u2336a3bNmy1T//+c+tO3fujPvyyy8zNm/enHDttdeuO+WUU4pv0nf55Zc3SU5Odjp27JjbsGHDPY7j6JdffkmdP39+5VatWu3s06dPbnDOTZs23dWqVatWp59++pbExETnm2++SV+5cmXyiSeeuPX6668vLjAPHDhw03PPPVfnvvvuazBp0qTUpk2b5i1evLjSd999V+2UU07J+fLLLzOC23711VdXnHDCCSmjRo3K/Pnnn1NPPPHEbUlJSc7y5cuTfvjhh2rvvffeol69euUWxS5durTS//73v6wPP/ywxjHHHLO9Vq1a+WvXrk3866+/UubPn1/5xRdfXEKBGQAAAMUOn/eBp67AR3TN6j8qqu/v1ek6AACA+xo2bLj7xRdfXH777bfXe/vttzPz8/PNkUceufPuu+9ec+6554Z9qX/t2rULpk2b9se9995b56uvvsp4+eWXaycnJxe2bt16x2233bb+nHPO2aethIQEffDBB4vuvPPO+kVFaMdx1LVr1+1HHHHEnkqVKjk//PDDnw8++GDtjz/+uMYbb7xRy38V786HHnoo+5prrtlnaot777139fjx49Pmz59fZdKkSdWSkpKcrKysPXffffeqW2+9NTs5OdkJznnMmDFL7rjjjroff/xxjezs7MRatWrlDx48eM3QoUPXxcX9fU+9Ro0a5X/77bd/3H777fVnzJhR9Ycffkhr0qRJ3vDhw1ecccYZ20IVmDMzMwumT5/+x3//+99ao0ePrv7uu+/WjIuLU506dfb07dt3Y7t27YqvhK5evXrhL7/8snDEiBE1P/zwwxpff/11+u7du+Nq1KiR36hRo90PPPDAyt69e7v7r81RQIEZAAAAAAAAOAi0b98+79tvv11cWszNN9+86eabb95UWkzNmjULnn/++dWSVofzvt26ddv5888//1nS85UrV3aGDRu2btiwYevKautf//pX9r/+9a/scN63SEpKivPUU0+teeqpp9aUFduhQ4e8iRMnLgr1nOM4M0MtT0tLKxw+fPi64cOHl5l/pUqVnLvuuiv7rrvuKnMdevXqlVvSe8YSCswAAAAAAAA4qCwbdkbMF+2AWBFXdggAAAAAAAAAAPujwAwAAAAAAAAAiAhTZAAAAAAAAAAxqnnz5nsOhnl8IzFt2rSF0c4BXMEMAAAAAAAAAIgQBWYAAAAAAAAAQEQoMAMAAAAAAAAAIkKB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n366xpgxY1KNMR0GDx6cVVaOBxuuYAYAxKBKkj6UdIWktyVJF1wgpaZK558v7doVzdwAAAAAwFvuu+++enFxcWrbtu2OrKysPVu3bo2fMmVK2r333ttgxowZVT799NOloV534403Npw+fXrV7t27b+3Zs+fW+Ph4SdKvv/5aqXv37i22bt0af+KJJ25t1arVrmXLliVffPHFTbt167Y1VFs//vhj5TPPPLPZ1q1bE0444YRtp59++pZNmzYljBs3Lv2kk05q8fbbby/u16/fVkm65ppr1o8ZMyZj+vTpVc8555xNhx12WNhXY9988831nn322Tr16tXb06tXry3VqlUrWLduXeKcOXOqfPzxxxlXX331lkhykqR169bFd+nSpcWqVauS27dvv/3YY4/dvm7dusTbb7/9sOOPPz7keh8KKDADAGJUgqQ3JFWT9Iwk6YwzpLFjpTPPlHJzo5gaAAAAAHjImDFjFrVq1Wp34LKCggKdf/75jUaPHl1j4sSJG3r06LEj+HXz58+vPH369N9btGixT4H3+uuvb7h169b4YcOGrbjjjjuyi5Z/8MEHaf369WsW3E5+fr769+/fZOfOnfFffPHFwjPOOGN70XPLli1L7NSpU8sbb7zxsN69e89LSUlx7rvvvg05OTkJ06dPr3r55Zdv6tWrV9i/4Y0cOTKzVq1a+QsWLPgtNTV1n4kU165dW1wLtc1JkgYNGlR/1apVyVdcccWGV199dWVR/OTJkzf06NGjRbg5HmyYIgMAEMPiJD0l6Z7iJd26SRMnSjVi6v7IAAAAAOCe4OKyJMXHx2vw4MEbJOmrr75KC/W6m266aV1wcXnRokWJv/zyS2rDhg1333bbbdmBz/Xt23fbcccdty24nffffz995cqVyZdddtmGwEKuJDVq1Cj/pptuWrdx48bEzz//PGQethISEpyEhAQneHndunX3RprT7t27zaefflq9SpUqhY888sg+81937dp1Z58+fTaXR+6xiCuYAQAxzkj6j3xXMt8uSerYUZo0Sbr++mjmBQAAAADesG7duvgHH3ywzoQJE6qtWrUqedeuXftcdLpmzZqkUK877rjj9ruqedq0aZUlqX379tuLpswIes32n3/+eZ9C8U8//VRFklauXJkUao7iRYsWJUvS77//XknSAU01cdZZZ2168803azVv3rzVmWee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\n",
      "text/plain": [
       "<Figure size 1440x324 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#import matplotlib.pyplot as plt\n",
    "#plt.rc('font', family='Helvetica')\n",
    "\n",
    "pegRNA_df_loc=0 #choosing which guide to display from the above dataframe\n",
    "h = pegg.pegrna_display(ranked_filtered, pegRNA_df_loc, records, index_list)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e822ce0d",
   "metadata": {},
   "source": [
    "# Extra Case Study: High throughput ClinVar example\n",
    "\n",
    "Instead of manually inputting a list of ClinVar variation IDs, users can search the ClinVar database, filter for the mutations that they want to include (e.g. filtering for short variants <50 bp), and download the results. Downloading can be done by clicking \"Download> Format = 'Tabluar (text)\" at the top of the ClinVar search results. An example is provided in the [Reference Files dropbox](https://www.dropbox.com/sh/h6fdvpv3tyny27q/AADYVOkJe12XZiD4pf3_WXuga?dl=0), which includes all of the MSH6 ClinVar variants (as shown in the paper):\n",
    "\n",
    "First we read in the file:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "bced3d18",
   "metadata": {},
   "outputs": [],
   "source": [
    "#importing all of the short MSH6 variants from ClinVar\n",
    "msh6_file = '/Users/samgould/Desktop/FSR Lab/2022-10-12/clinvar_result_MSH6.txt'\n",
    "msh6 = pd.read_csv(msh6_file, sep='\\t')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7e5a3d41",
   "metadata": {},
   "source": [
    "Next, we create a list of the Variation IDs by selecting the appropriate column:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "f06c75d8",
   "metadata": {},
   "outputs": [],
   "source": [
    "variation_ids = list(msh6[\"VariationID\"])"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d80cf6ca",
   "metadata": {},
   "source": [
    "Next, we use the same function to translate these Variation IDs to a format readable by PEGG:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "4cc37fc1",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[W::vcf_parse] Contig '1' is not defined in the header. (Quick workaround: index the file with tabix.)\n",
      "[W::vcf_parse] Contig '2' is not defined in the header. (Quick workaround: index the file with tabix.)\n",
      "[W::vcf_parse] Contig '3' is not defined in the header. (Quick workaround: index the file with tabix.)\n",
      "[W::vcf_parse] Contig '4' is not defined in the header. (Quick workaround: index the file with tabix.)\n",
      "[W::vcf_parse] Contig '5' is not defined in the header. (Quick workaround: index the file with tabix.)\n",
      "[W::vcf_parse] Contig '6' is not defined in the header. (Quick workaround: index the file with tabix.)\n",
      "[W::vcf_parse] Contig '7' is not defined in the header. (Quick workaround: index the file with tabix.)\n",
      "[W::vcf_parse] Contig '8' is not defined in the header. (Quick workaround: index the file with tabix.)\n",
      "[W::vcf_parse] Contig '9' is not defined in the header. (Quick workaround: index the file with tabix.)\n",
      "[W::vcf_parse] Contig '10' is not defined in the header. (Quick workaround: index the file with tabix.)\n",
      "[W::vcf_parse] Contig '11' is not defined in the header. (Quick workaround: index the file with tabix.)\n",
      "[W::vcf_parse] Contig '12' is not defined in the header. (Quick workaround: index the file with tabix.)\n",
      "[W::vcf_parse] Contig '13' is not defined in the header. (Quick workaround: index the file with tabix.)\n",
      "[W::vcf_parse] Contig '14' is not defined in the header. (Quick workaround: index the file with tabix.)\n",
      "[W::vcf_parse] Contig '15' is not defined in the header. (Quick workaround: index the file with tabix.)\n",
      "[W::vcf_parse] Contig '16' is not defined in the header. (Quick workaround: index the file with tabix.)\n",
      "[W::vcf_parse] Contig '17' is not defined in the header. (Quick workaround: index the file with tabix.)\n",
      "[W::vcf_parse] Contig '18' is not defined in the header. (Quick workaround: index the file with tabix.)\n",
      "[W::vcf_parse] Contig '19' is not defined in the header. (Quick workaround: index the file with tabix.)\n",
      "[W::vcf_parse] Contig '20' is not defined in the header. (Quick workaround: index the file with tabix.)\n",
      "[W::vcf_parse] Contig '21' is not defined in the header. (Quick workaround: index the file with tabix.)\n",
      "[W::vcf_parse] Contig '22' is not defined in the header. (Quick workaround: index the file with tabix.)\n",
      "[W::vcf_parse] Contig 'X' is not defined in the header. (Quick workaround: index the file with tabix.)\n",
      "[W::vcf_parse] Contig 'Y' is not defined in the header. (Quick workaround: index the file with tabix.)\n",
      "[W::vcf_parse] Contig 'MT' is not defined in the header. (Quick workaround: index the file with tabix.)\n"
     ]
    }
   ],
   "source": [
    "#extracting variation IDs\n",
    "variation_ids = list(msh6[\"VariationID\"])\n",
    "filepath = '/Users/samgould/Desktop/FSR Lab/reference files/clinvar_20221001.vcf.gz'\n",
    "clinvar_msh6 = pegg.clinvar_VCF_translator(filepath, variation_ids)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "bbd00467",
   "metadata": {},
   "source": [
    "This list includes some variant types that aren't interpretable by PEGG, so we filter to just include the SNPs, INS, and DEL:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "d9c5eb9d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Hugo_Symbol</th>\n",
       "      <th>Chromosome</th>\n",
       "      <th>Start_Position</th>\n",
       "      <th>End_Position</th>\n",
       "      <th>Reference_Allele</th>\n",
       "      <th>Tumor_Seq_Allele2</th>\n",
       "      <th>Variant_Type</th>\n",
       "      <th>Variation_ID</th>\n",
       "      <th>Allele_ID</th>\n",
       "      <th>CLNSIG</th>\n",
       "      <th>CLNHGVS</th>\n",
       "      <th>CLNDN</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>MSH6</td>\n",
       "      <td>2</td>\n",
       "      <td>48009816</td>\n",
       "      <td>48009816</td>\n",
       "      <td>T</td>\n",
       "      <td>G</td>\n",
       "      <td>SNP</td>\n",
       "      <td>89163</td>\n",
       "      <td>94637</td>\n",
       "      <td>Benign</td>\n",
       "      <td>NC_000002.11:g.48009816T&gt;G</td>\n",
       "      <td>Lynch_syndrome</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>MSH6</td>\n",
       "      <td>2</td>\n",
       "      <td>48009925</td>\n",
       "      <td>48009925</td>\n",
       "      <td>G</td>\n",
       "      <td>A</td>\n",
       "      <td>SNP</td>\n",
       "      <td>89162</td>\n",
       "      <td>94636</td>\n",
       "      <td>Benign</td>\n",
       "      <td>NC_000002.11:g.48009925G&gt;A</td>\n",
       "      <td>Lynch_syndrome|not_provided</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>MSH6</td>\n",
       "      <td>2</td>\n",
       "      <td>48010028</td>\n",
       "      <td>48010028</td>\n",
       "      <td>G</td>\n",
       "      <td>T</td>\n",
       "      <td>SNP</td>\n",
       "      <td>1191613</td>\n",
       "      <td>1179546</td>\n",
       "      <td>Likely_benign</td>\n",
       "      <td>NC_000002.11:g.48010028G&gt;T</td>\n",
       "      <td>not_provided</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>MSH6</td>\n",
       "      <td>2</td>\n",
       "      <td>48010085</td>\n",
       "      <td>48010085</td>\n",
       "      <td>C</td>\n",
       "      <td>T</td>\n",
       "      <td>SNP</td>\n",
       "      <td>1205129</td>\n",
       "      <td>1193172</td>\n",
       "      <td>Likely_benign</td>\n",
       "      <td>NC_000002.11:g.48010085C&gt;T</td>\n",
       "      <td>not_provided</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>MSH6</td>\n",
       "      <td>2</td>\n",
       "      <td>48010163</td>\n",
       "      <td>48010163</td>\n",
       "      <td>C</td>\n",
       "      <td>T</td>\n",
       "      <td>SNP</td>\n",
       "      <td>89160</td>\n",
       "      <td>94634</td>\n",
       "      <td>Benign</td>\n",
       "      <td>NC_000002.11:g.48010163C&gt;T</td>\n",
       "      <td>Lynch_syndrome</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5652</th>\n",
       "      <td>MSH6</td>\n",
       "      <td>2</td>\n",
       "      <td>48033986</td>\n",
       "      <td>48033996</td>\n",
       "      <td>TTAAGGAATTA</td>\n",
       "      <td>T</td>\n",
       "      <td>DEL</td>\n",
       "      <td>918555</td>\n",
       "      <td>909077</td>\n",
       "      <td>Uncertain_significance</td>\n",
       "      <td>NC_000002.11:g.48033989_48033998del</td>\n",
       "      <td>Hereditary_cancer-predisposing_syndrome|Heredi...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5653</th>\n",
       "      <td>MSH6</td>\n",
       "      <td>2</td>\n",
       "      <td>48033993</td>\n",
       "      <td>48034017</td>\n",
       "      <td>ATTATAGACTGACTACATTGGAAGC</td>\n",
       "      <td>A</td>\n",
       "      <td>DEL</td>\n",
       "      <td>141438</td>\n",
       "      <td>151152</td>\n",
       "      <td>Uncertain_significance</td>\n",
       "      <td>NC_000002.11:g.48033996_48034019del</td>\n",
       "      <td>Hereditary_cancer-predisposing_syndrome</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5654</th>\n",
       "      <td>MSH6</td>\n",
       "      <td>2</td>\n",
       "      <td>48033995</td>\n",
       "      <td>48034008</td>\n",
       "      <td>TATAGACTGACTAC</td>\n",
       "      <td>T</td>\n",
       "      <td>DEL</td>\n",
       "      <td>419751</td>\n",
       "      <td>405976</td>\n",
       "      <td>Uncertain_significance</td>\n",
       "      <td>NC_000002.11:g.48033998_48034010del</td>\n",
       "      <td>Hereditary_cancer-predisposing_syndrome|Heredi...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5655</th>\n",
       "      <td>MSH6</td>\n",
       "      <td>2</td>\n",
       "      <td>48033997</td>\n",
       "      <td>48033998</td>\n",
       "      <td>TA</td>\n",
       "      <td>T</td>\n",
       "      <td>DEL</td>\n",
       "      <td>510862</td>\n",
       "      <td>500047</td>\n",
       "      <td>Conflicting_interpretations_of_pathogenicity</td>\n",
       "      <td>NC_000002.11:g.48033998del</td>\n",
       "      <td>Hereditary_cancer-predisposing_syndrome|Heredi...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5656</th>\n",
       "      <td>MSH6</td>\n",
       "      <td>2</td>\n",
       "      <td>48034018</td>\n",
       "      <td>48034023</td>\n",
       "      <td>TTTGAG</td>\n",
       "      <td>T</td>\n",
       "      <td>DEL</td>\n",
       "      <td>89151</td>\n",
       "      <td>94625</td>\n",
       "      <td>Conflicting_interpretations_of_pathogenicity</td>\n",
       "      <td>NC_000002.11:g.48034023_48034027del</td>\n",
       "      <td>Lynch_syndrome|Colorectal_cancer,_hereditary_n...</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5657 rows × 12 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "     Hugo_Symbol Chromosome  Start_Position  End_Position  \\\n",
       "0           MSH6          2        48009816      48009816   \n",
       "1           MSH6          2        48009925      48009925   \n",
       "2           MSH6          2        48010028      48010028   \n",
       "3           MSH6          2        48010085      48010085   \n",
       "4           MSH6          2        48010163      48010163   \n",
       "...          ...        ...             ...           ...   \n",
       "5652        MSH6          2        48033986      48033996   \n",
       "5653        MSH6          2        48033993      48034017   \n",
       "5654        MSH6          2        48033995      48034008   \n",
       "5655        MSH6          2        48033997      48033998   \n",
       "5656        MSH6          2        48034018      48034023   \n",
       "\n",
       "               Reference_Allele Tumor_Seq_Allele2 Variant_Type  Variation_ID  \\\n",
       "0                             T                 G          SNP         89163   \n",
       "1                             G                 A          SNP         89162   \n",
       "2                             G                 T          SNP       1191613   \n",
       "3                             C                 T          SNP       1205129   \n",
       "4                             C                 T          SNP         89160   \n",
       "...                         ...               ...          ...           ...   \n",
       "5652                TTAAGGAATTA                 T          DEL        918555   \n",
       "5653  ATTATAGACTGACTACATTGGAAGC                 A          DEL        141438   \n",
       "5654             TATAGACTGACTAC                 T          DEL        419751   \n",
       "5655                         TA                 T          DEL        510862   \n",
       "5656                     TTTGAG                 T          DEL         89151   \n",
       "\n",
       "      Allele_ID                                        CLNSIG  \\\n",
       "0         94637                                        Benign   \n",
       "1         94636                                        Benign   \n",
       "2       1179546                                 Likely_benign   \n",
       "3       1193172                                 Likely_benign   \n",
       "4         94634                                        Benign   \n",
       "...         ...                                           ...   \n",
       "5652     909077                        Uncertain_significance   \n",
       "5653     151152                        Uncertain_significance   \n",
       "5654     405976                        Uncertain_significance   \n",
       "5655     500047  Conflicting_interpretations_of_pathogenicity   \n",
       "5656      94625  Conflicting_interpretations_of_pathogenicity   \n",
       "\n",
       "                                  CLNHGVS  \\\n",
       "0              NC_000002.11:g.48009816T>G   \n",
       "1              NC_000002.11:g.48009925G>A   \n",
       "2              NC_000002.11:g.48010028G>T   \n",
       "3              NC_000002.11:g.48010085C>T   \n",
       "4              NC_000002.11:g.48010163C>T   \n",
       "...                                   ...   \n",
       "5652  NC_000002.11:g.48033989_48033998del   \n",
       "5653  NC_000002.11:g.48033996_48034019del   \n",
       "5654  NC_000002.11:g.48033998_48034010del   \n",
       "5655           NC_000002.11:g.48033998del   \n",
       "5656  NC_000002.11:g.48034023_48034027del   \n",
       "\n",
       "                                                  CLNDN  \n",
       "0                                        Lynch_syndrome  \n",
       "1                           Lynch_syndrome|not_provided  \n",
       "2                                          not_provided  \n",
       "3                                          not_provided  \n",
       "4                                        Lynch_syndrome  \n",
       "...                                                 ...  \n",
       "5652  Hereditary_cancer-predisposing_syndrome|Heredi...  \n",
       "5653            Hereditary_cancer-predisposing_syndrome  \n",
       "5654  Hereditary_cancer-predisposing_syndrome|Heredi...  \n",
       "5655  Hereditary_cancer-predisposing_syndrome|Heredi...  \n",
       "5656  Lynch_syndrome|Colorectal_cancer,_hereditary_n...  \n",
       "\n",
       "[5657 rows x 12 columns]"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#filter to only include SNP, INS, DEL\n",
    "\n",
    "msh6_snp = clinvar_msh6[clinvar_msh6['Variant_Type']=='SNP'] \n",
    "msh6_ins = clinvar_msh6[clinvar_msh6['Variant_Type']=='INS']\n",
    "msh6_del = clinvar_msh6[clinvar_msh6['Variant_Type']=='DEL']\n",
    "msh6_combined = pd.concat((msh6_snp, msh6_ins, msh6_del))\n",
    "\n",
    "msh6_combined = msh6_combined.reset_index().drop(columns = ['index'])\n",
    "msh6_combined"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "56037484",
   "metadata": {},
   "source": [
    "Lastly, we can again generate pegRNAs for each of these input mutations (this will take longer to run because we are generating pegRNAs for >5,000 mutations:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "3ed0163f",
   "metadata": {},
   "outputs": [],
   "source": [
    "\n",
    "#select list of mutations to model\n",
    "mut_idx_list = range(len(msh6_combined))\n",
    "PAM = 'NGG'\n",
    "\n",
    "RTT_lengths = [10, 15, 20, 25, 30]\n",
    "PBS_lengths = [10,13,15]\n",
    "\n",
    "guides_per_mut=5\n",
    "\n",
    "ranked_filtered = pegg.run(msh6_combined, mut_idx_list, records, index_list, minus_seqs, chrom_dict, PAM, RTT_lengths, PBS_lengths, guides_per_mut)\n",
    "\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "dff538ad",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>mutant index</th>\n",
       "      <th>gene</th>\n",
       "      <th>chr</th>\n",
       "      <th>start</th>\n",
       "      <th>end</th>\n",
       "      <th>variant_type</th>\n",
       "      <th>ref_allele</th>\n",
       "      <th>mut_allele</th>\n",
       "      <th>PAM location</th>\n",
       "      <th>PAM strand</th>\n",
       "      <th>PAM</th>\n",
       "      <th>protospacer</th>\n",
       "      <th>PBS</th>\n",
       "      <th>PBS length</th>\n",
       "      <th>RTT</th>\n",
       "      <th>RTT length</th>\n",
       "      <th>PBS_RTT_5to3</th>\n",
       "      <th>distance mut to 5' RTT</th>\n",
       "      <th>distance to nick</th>\n",
       "      <th>target sequence</th>\n",
       "      <th>target length</th>\n",
       "      <th>MIT specificity</th>\n",
       "      <th>CFD efficiency percentile</th>\n",
       "      <th>contains terminator?</th>\n",
       "      <th>contains RE site?</th>\n",
       "      <th>last templated base C?</th>\n",
       "      <th>PBS GC content</th>\n",
       "      <th>composite score</th>\n",
       "      <th>target genomic edit</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>MSH6</td>\n",
       "      <td>chr2</td>\n",
       "      <td>48009816</td>\n",
       "      <td>48009816</td>\n",
       "      <td>SNP</td>\n",
       "      <td>T</td>\n",
       "      <td>G</td>\n",
       "      <td>48009821</td>\n",
       "      <td>-</td>\n",
       "      <td>AGG</td>\n",
       "      <td>GCCGTTAGAGCATTTTCGCA</td>\n",
       "      <td>GAAAATGCTCTAACG</td>\n",
       "      <td>15</td>\n",
       "      <td>AGTTTGGTCCCTTTCGCTCCGGCTCCTTGC</td>\n",
       "      <td>30</td>\n",
       "      <td>AGTTTGGTCCCTTTCGCTCCGGCTCCTTGCGAAAATGCTCTAACG</td>\n",
       "      <td>22</td>\n",
       "      <td>8</td>\n",
       "      <td>CTGACTAAAGTTTGGTCCCTTTCGCTCCGTCTCCTTGCGAAAATGC...</td>\n",
       "      <td>60</td>\n",
       "      <td>94</td>\n",
       "      <td>78</td>\n",
       "      <td>no</td>\n",
       "      <td>yes</td>\n",
       "      <td>no</td>\n",
       "      <td>0.400000</td>\n",
       "      <td>2.720000</td>\n",
       "      <td>TACAACGTGAAGGTGAACTGCTGACTAAAGTTTGGTCCCTTTCGCT...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0</td>\n",
       "      <td>MSH6</td>\n",
       "      <td>chr2</td>\n",
       "      <td>48009816</td>\n",
       "      <td>48009816</td>\n",
       "      <td>SNP</td>\n",
       "      <td>T</td>\n",
       "      <td>G</td>\n",
       "      <td>48009821</td>\n",
       "      <td>-</td>\n",
       "      <td>AGG</td>\n",
       "      <td>GCCGTTAGAGCATTTTCGCA</td>\n",
       "      <td>GAAAATGCTC</td>\n",
       "      <td>10</td>\n",
       "      <td>AGTTTGGTCCCTTTCGCTCCGGCTCCTTGC</td>\n",
       "      <td>30</td>\n",
       "      <td>AGTTTGGTCCCTTTCGCTCCGGCTCCTTGCGAAAATGCTC</td>\n",
       "      <td>22</td>\n",
       "      <td>8</td>\n",
       "      <td>CTGACTAAAGTTTGGTCCCTTTCGCTCCGTCTCCTTGCGAAAATGC...</td>\n",
       "      <td>60</td>\n",
       "      <td>94</td>\n",
       "      <td>78</td>\n",
       "      <td>no</td>\n",
       "      <td>yes</td>\n",
       "      <td>no</td>\n",
       "      <td>0.400000</td>\n",
       "      <td>2.720000</td>\n",
       "      <td>TACAACGTGAAGGTGAACTGCTGACTAAAGTTTGGTCCCTTTCGCT...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0</td>\n",
       "      <td>MSH6</td>\n",
       "      <td>chr2</td>\n",
       "      <td>48009816</td>\n",
       "      <td>48009816</td>\n",
       "      <td>SNP</td>\n",
       "      <td>T</td>\n",
       "      <td>G</td>\n",
       "      <td>48009821</td>\n",
       "      <td>-</td>\n",
       "      <td>AGG</td>\n",
       "      <td>GCCGTTAGAGCATTTTCGCA</td>\n",
       "      <td>GAAAATGCTC</td>\n",
       "      <td>10</td>\n",
       "      <td>GGTCCCTTTCGCTCCGGCTCCTTGC</td>\n",
       "      <td>25</td>\n",
       "      <td>GGTCCCTTTCGCTCCGGCTCCTTGCGAAAATGCTC</td>\n",
       "      <td>17</td>\n",
       "      <td>8</td>\n",
       "      <td>CTGACTAAAGTTTGGTCCCTTTCGCTCCGTCTCCTTGCGAAAATGC...</td>\n",
       "      <td>60</td>\n",
       "      <td>94</td>\n",
       "      <td>78</td>\n",
       "      <td>no</td>\n",
       "      <td>yes</td>\n",
       "      <td>no</td>\n",
       "      <td>0.400000</td>\n",
       "      <td>2.720000</td>\n",
       "      <td>TACAACGTGAAGGTGAACTGCTGACTAAAGTTTGGTCCCTTTCGCT...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0</td>\n",
       "      <td>MSH6</td>\n",
       "      <td>chr2</td>\n",
       "      <td>48009816</td>\n",
       "      <td>48009816</td>\n",
       "      <td>SNP</td>\n",
       "      <td>T</td>\n",
       "      <td>G</td>\n",
       "      <td>48009821</td>\n",
       "      <td>-</td>\n",
       "      <td>AGG</td>\n",
       "      <td>GCCGTTAGAGCATTTTCGCA</td>\n",
       "      <td>GAAAATGCTCTAACG</td>\n",
       "      <td>15</td>\n",
       "      <td>GGTCCCTTTCGCTCCGGCTCCTTGC</td>\n",
       "      <td>25</td>\n",
       "      <td>GGTCCCTTTCGCTCCGGCTCCTTGCGAAAATGCTCTAACG</td>\n",
       "      <td>17</td>\n",
       "      <td>8</td>\n",
       "      <td>CTGACTAAAGTTTGGTCCCTTTCGCTCCGTCTCCTTGCGAAAATGC...</td>\n",
       "      <td>60</td>\n",
       "      <td>94</td>\n",
       "      <td>78</td>\n",
       "      <td>no</td>\n",
       "      <td>yes</td>\n",
       "      <td>no</td>\n",
       "      <td>0.400000</td>\n",
       "      <td>2.720000</td>\n",
       "      <td>TACAACGTGAAGGTGAACTGCTGACTAAAGTTTGGTCCCTTTCGCT...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0</td>\n",
       "      <td>MSH6</td>\n",
       "      <td>chr2</td>\n",
       "      <td>48009816</td>\n",
       "      <td>48009816</td>\n",
       "      <td>SNP</td>\n",
       "      <td>T</td>\n",
       "      <td>G</td>\n",
       "      <td>48009815</td>\n",
       "      <td>-</td>\n",
       "      <td>CGG</td>\n",
       "      <td>AGAGCATTTTCGCAAGGAGA</td>\n",
       "      <td>CCTTGCGAAA</td>\n",
       "      <td>10</td>\n",
       "      <td>TGGTCCCTTTCGCTCCGGCT</td>\n",
       "      <td>20</td>\n",
       "      <td>TGGTCCCTTTCGCTCCGGCTCCTTGCGAAA</td>\n",
       "      <td>18</td>\n",
       "      <td>2</td>\n",
       "      <td>GAACTGCTGACTAAAGTTTGGTCCCTTTCGCTCCGTCTCCTTGCGA...</td>\n",
       "      <td>60</td>\n",
       "      <td>75</td>\n",
       "      <td>53</td>\n",
       "      <td>no</td>\n",
       "      <td>yes</td>\n",
       "      <td>no</td>\n",
       "      <td>0.500000</td>\n",
       "      <td>2.280000</td>\n",
       "      <td>TACAACGTGAAGGTGAACTGCTGACTAAAGTTTGGTCCCTTTCGCT...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>26144</th>\n",
       "      <td>5656</td>\n",
       "      <td>MSH6</td>\n",
       "      <td>chr2</td>\n",
       "      <td>48034018</td>\n",
       "      <td>48034023</td>\n",
       "      <td>DEL</td>\n",
       "      <td>TTTGAG</td>\n",
       "      <td>T</td>\n",
       "      <td>48034010</td>\n",
       "      <td>+</td>\n",
       "      <td>TGG</td>\n",
       "      <td>GAATTATAGACTGACTACAT</td>\n",
       "      <td>TCTGACTGAT</td>\n",
       "      <td>10</td>\n",
       "      <td>GTAACCTTCGAAACTGAAGACTGTT</td>\n",
       "      <td>25</td>\n",
       "      <td>TTGTCAGAAGTCAAAGCTTCCAATGTAGTCAGTCT</td>\n",
       "      <td>14</td>\n",
       "      <td>11</td>\n",
       "      <td>TTAAGGAATTATAGACTGACTACATTGGAAGCTTTGAGTTGACTTC...</td>\n",
       "      <td>60</td>\n",
       "      <td>86</td>\n",
       "      <td>81</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>0.400000</td>\n",
       "      <td>3.536667</td>\n",
       "      <td>TAAATTGCTGACTTTGATTAAGGAATTATAGACTGACTACATTGGA...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>26145</th>\n",
       "      <td>5656</td>\n",
       "      <td>MSH6</td>\n",
       "      <td>chr2</td>\n",
       "      <td>48034018</td>\n",
       "      <td>48034023</td>\n",
       "      <td>DEL</td>\n",
       "      <td>TTTGAG</td>\n",
       "      <td>T</td>\n",
       "      <td>48034010</td>\n",
       "      <td>+</td>\n",
       "      <td>TGG</td>\n",
       "      <td>GAATTATAGACTGACTACAT</td>\n",
       "      <td>ATATCTGACTGAT</td>\n",
       "      <td>13</td>\n",
       "      <td>GTAACCTTCGAAACTGAAGACTGTT</td>\n",
       "      <td>25</td>\n",
       "      <td>TTGTCAGAAGTCAAAGCTTCCAATGTAGTCAGTCTATA</td>\n",
       "      <td>14</td>\n",
       "      <td>11</td>\n",
       "      <td>TTAAGGAATTATAGACTGACTACATTGGAAGCTTTGAGTTGACTTC...</td>\n",
       "      <td>60</td>\n",
       "      <td>86</td>\n",
       "      <td>81</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>0.307692</td>\n",
       "      <td>3.075128</td>\n",
       "      <td>TAAATTGCTGACTTTGATTAAGGAATTATAGACTGACTACATTGGA...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>26146</th>\n",
       "      <td>5656</td>\n",
       "      <td>MSH6</td>\n",
       "      <td>chr2</td>\n",
       "      <td>48034018</td>\n",
       "      <td>48034023</td>\n",
       "      <td>DEL</td>\n",
       "      <td>TTTGAG</td>\n",
       "      <td>T</td>\n",
       "      <td>48034010</td>\n",
       "      <td>+</td>\n",
       "      <td>TGG</td>\n",
       "      <td>GAATTATAGACTGACTACAT</td>\n",
       "      <td>TCTGACTGAT</td>\n",
       "      <td>10</td>\n",
       "      <td>GTAACCTTCGAAACTGAAGA</td>\n",
       "      <td>20</td>\n",
       "      <td>AGAAGTCAAAGCTTCCAATGTAGTCAGTCT</td>\n",
       "      <td>9</td>\n",
       "      <td>11</td>\n",
       "      <td>TTAAGGAATTATAGACTGACTACATTGGAAGCTTTGAGTTGACTTC...</td>\n",
       "      <td>60</td>\n",
       "      <td>86</td>\n",
       "      <td>81</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>0.400000</td>\n",
       "      <td>2.870000</td>\n",
       "      <td>TAAATTGCTGACTTTGATTAAGGAATTATAGACTGACTACATTGGA...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>26147</th>\n",
       "      <td>5656</td>\n",
       "      <td>MSH6</td>\n",
       "      <td>chr2</td>\n",
       "      <td>48034018</td>\n",
       "      <td>48034023</td>\n",
       "      <td>DEL</td>\n",
       "      <td>TTTGAG</td>\n",
       "      <td>T</td>\n",
       "      <td>48034010</td>\n",
       "      <td>+</td>\n",
       "      <td>TGG</td>\n",
       "      <td>GAATTATAGACTGACTACAT</td>\n",
       "      <td>TAATATCTGACTGAT</td>\n",
       "      <td>15</td>\n",
       "      <td>GTAACCTTCGAAACTGAAGACTGTT</td>\n",
       "      <td>25</td>\n",
       "      <td>TTGTCAGAAGTCAAAGCTTCCAATGTAGTCAGTCTATAAT</td>\n",
       "      <td>14</td>\n",
       "      <td>11</td>\n",
       "      <td>TTAAGGAATTATAGACTGACTACATTGGAAGCTTTGAGTTGACTTC...</td>\n",
       "      <td>60</td>\n",
       "      <td>86</td>\n",
       "      <td>81</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>0.266667</td>\n",
       "      <td>2.870000</td>\n",
       "      <td>TAAATTGCTGACTTTGATTAAGGAATTATAGACTGACTACATTGGA...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>26148</th>\n",
       "      <td>5656</td>\n",
       "      <td>MSH6</td>\n",
       "      <td>chr2</td>\n",
       "      <td>48034018</td>\n",
       "      <td>48034023</td>\n",
       "      <td>DEL</td>\n",
       "      <td>TTTGAG</td>\n",
       "      <td>T</td>\n",
       "      <td>48034010</td>\n",
       "      <td>+</td>\n",
       "      <td>TGG</td>\n",
       "      <td>GAATTATAGACTGACTACAT</td>\n",
       "      <td>TCTGACTGAT</td>\n",
       "      <td>10</td>\n",
       "      <td>GTAACCTTCGAAACTGAAGACTGTTTCCAC</td>\n",
       "      <td>30</td>\n",
       "      <td>CACCTTTGTCAGAAGTCAAAGCTTCCAATGTAGTCAGTCT</td>\n",
       "      <td>19</td>\n",
       "      <td>11</td>\n",
       "      <td>TTAAGGAATTATAGACTGACTACATTGGAAGCTTTGAGTTGACTTC...</td>\n",
       "      <td>60</td>\n",
       "      <td>86</td>\n",
       "      <td>81</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>yes</td>\n",
       "      <td>0.400000</td>\n",
       "      <td>2.670000</td>\n",
       "      <td>TAAATTGCTGACTTTGATTAAGGAATTATAGACTGACTACATTGGA...</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>26149 rows × 29 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "       mutant index  gene   chr     start       end variant_type ref_allele  \\\n",
       "0                 0  MSH6  chr2  48009816  48009816          SNP          T   \n",
       "1                 0  MSH6  chr2  48009816  48009816          SNP          T   \n",
       "2                 0  MSH6  chr2  48009816  48009816          SNP          T   \n",
       "3                 0  MSH6  chr2  48009816  48009816          SNP          T   \n",
       "4                 0  MSH6  chr2  48009816  48009816          SNP          T   \n",
       "...             ...   ...   ...       ...       ...          ...        ...   \n",
       "26144          5656  MSH6  chr2  48034018  48034023          DEL     TTTGAG   \n",
       "26145          5656  MSH6  chr2  48034018  48034023          DEL     TTTGAG   \n",
       "26146          5656  MSH6  chr2  48034018  48034023          DEL     TTTGAG   \n",
       "26147          5656  MSH6  chr2  48034018  48034023          DEL     TTTGAG   \n",
       "26148          5656  MSH6  chr2  48034018  48034023          DEL     TTTGAG   \n",
       "\n",
       "      mut_allele  PAM location PAM strand  PAM           protospacer  \\\n",
       "0              G      48009821          -  AGG  GCCGTTAGAGCATTTTCGCA   \n",
       "1              G      48009821          -  AGG  GCCGTTAGAGCATTTTCGCA   \n",
       "2              G      48009821          -  AGG  GCCGTTAGAGCATTTTCGCA   \n",
       "3              G      48009821          -  AGG  GCCGTTAGAGCATTTTCGCA   \n",
       "4              G      48009815          -  CGG  AGAGCATTTTCGCAAGGAGA   \n",
       "...          ...           ...        ...  ...                   ...   \n",
       "26144          T      48034010          +  TGG  GAATTATAGACTGACTACAT   \n",
       "26145          T      48034010          +  TGG  GAATTATAGACTGACTACAT   \n",
       "26146          T      48034010          +  TGG  GAATTATAGACTGACTACAT   \n",
       "26147          T      48034010          +  TGG  GAATTATAGACTGACTACAT   \n",
       "26148          T      48034010          +  TGG  GAATTATAGACTGACTACAT   \n",
       "\n",
       "                   PBS  PBS length                             RTT  \\\n",
       "0      GAAAATGCTCTAACG          15  AGTTTGGTCCCTTTCGCTCCGGCTCCTTGC   \n",
       "1           GAAAATGCTC          10  AGTTTGGTCCCTTTCGCTCCGGCTCCTTGC   \n",
       "2           GAAAATGCTC          10       GGTCCCTTTCGCTCCGGCTCCTTGC   \n",
       "3      GAAAATGCTCTAACG          15       GGTCCCTTTCGCTCCGGCTCCTTGC   \n",
       "4           CCTTGCGAAA          10            TGGTCCCTTTCGCTCCGGCT   \n",
       "...                ...         ...                             ...   \n",
       "26144       TCTGACTGAT          10       GTAACCTTCGAAACTGAAGACTGTT   \n",
       "26145    ATATCTGACTGAT          13       GTAACCTTCGAAACTGAAGACTGTT   \n",
       "26146       TCTGACTGAT          10            GTAACCTTCGAAACTGAAGA   \n",
       "26147  TAATATCTGACTGAT          15       GTAACCTTCGAAACTGAAGACTGTT   \n",
       "26148       TCTGACTGAT          10  GTAACCTTCGAAACTGAAGACTGTTTCCAC   \n",
       "\n",
       "       RTT length                                   PBS_RTT_5to3  \\\n",
       "0              30  AGTTTGGTCCCTTTCGCTCCGGCTCCTTGCGAAAATGCTCTAACG   \n",
       "1              30       AGTTTGGTCCCTTTCGCTCCGGCTCCTTGCGAAAATGCTC   \n",
       "2              25            GGTCCCTTTCGCTCCGGCTCCTTGCGAAAATGCTC   \n",
       "3              25       GGTCCCTTTCGCTCCGGCTCCTTGCGAAAATGCTCTAACG   \n",
       "4              20                 TGGTCCCTTTCGCTCCGGCTCCTTGCGAAA   \n",
       "...           ...                                            ...   \n",
       "26144          25            TTGTCAGAAGTCAAAGCTTCCAATGTAGTCAGTCT   \n",
       "26145          25         TTGTCAGAAGTCAAAGCTTCCAATGTAGTCAGTCTATA   \n",
       "26146          20                 AGAAGTCAAAGCTTCCAATGTAGTCAGTCT   \n",
       "26147          25       TTGTCAGAAGTCAAAGCTTCCAATGTAGTCAGTCTATAAT   \n",
       "26148          30       CACCTTTGTCAGAAGTCAAAGCTTCCAATGTAGTCAGTCT   \n",
       "\n",
       "       distance mut to 5' RTT  distance to nick  \\\n",
       "0                          22                 8   \n",
       "1                          22                 8   \n",
       "2                          17                 8   \n",
       "3                          17                 8   \n",
       "4                          18                 2   \n",
       "...                       ...               ...   \n",
       "26144                      14                11   \n",
       "26145                      14                11   \n",
       "26146                       9                11   \n",
       "26147                      14                11   \n",
       "26148                      19                11   \n",
       "\n",
       "                                         target sequence  target length  \\\n",
       "0      CTGACTAAAGTTTGGTCCCTTTCGCTCCGTCTCCTTGCGAAAATGC...             60   \n",
       "1      CTGACTAAAGTTTGGTCCCTTTCGCTCCGTCTCCTTGCGAAAATGC...             60   \n",
       "2      CTGACTAAAGTTTGGTCCCTTTCGCTCCGTCTCCTTGCGAAAATGC...             60   \n",
       "3      CTGACTAAAGTTTGGTCCCTTTCGCTCCGTCTCCTTGCGAAAATGC...             60   \n",
       "4      GAACTGCTGACTAAAGTTTGGTCCCTTTCGCTCCGTCTCCTTGCGA...             60   \n",
       "...                                                  ...            ...   \n",
       "26144  TTAAGGAATTATAGACTGACTACATTGGAAGCTTTGAGTTGACTTC...             60   \n",
       "26145  TTAAGGAATTATAGACTGACTACATTGGAAGCTTTGAGTTGACTTC...             60   \n",
       "26146  TTAAGGAATTATAGACTGACTACATTGGAAGCTTTGAGTTGACTTC...             60   \n",
       "26147  TTAAGGAATTATAGACTGACTACATTGGAAGCTTTGAGTTGACTTC...             60   \n",
       "26148  TTAAGGAATTATAGACTGACTACATTGGAAGCTTTGAGTTGACTTC...             60   \n",
       "\n",
       "       MIT specificity  CFD efficiency percentile contains terminator?  \\\n",
       "0                   94                         78                   no   \n",
       "1                   94                         78                   no   \n",
       "2                   94                         78                   no   \n",
       "3                   94                         78                   no   \n",
       "4                   75                         53                   no   \n",
       "...                ...                        ...                  ...   \n",
       "26144               86                         81                   no   \n",
       "26145               86                         81                   no   \n",
       "26146               86                         81                   no   \n",
       "26147               86                         81                   no   \n",
       "26148               86                         81                   no   \n",
       "\n",
       "      contains RE site? last templated base C?  PBS GC content  \\\n",
       "0                   yes                     no        0.400000   \n",
       "1                   yes                     no        0.400000   \n",
       "2                   yes                     no        0.400000   \n",
       "3                   yes                     no        0.400000   \n",
       "4                   yes                     no        0.500000   \n",
       "...                 ...                    ...             ...   \n",
       "26144                no                     no        0.400000   \n",
       "26145                no                     no        0.307692   \n",
       "26146                no                     no        0.400000   \n",
       "26147                no                     no        0.266667   \n",
       "26148                no                    yes        0.400000   \n",
       "\n",
       "       composite score                                target genomic edit  \n",
       "0             2.720000  TACAACGTGAAGGTGAACTGCTGACTAAAGTTTGGTCCCTTTCGCT...  \n",
       "1             2.720000  TACAACGTGAAGGTGAACTGCTGACTAAAGTTTGGTCCCTTTCGCT...  \n",
       "2             2.720000  TACAACGTGAAGGTGAACTGCTGACTAAAGTTTGGTCCCTTTCGCT...  \n",
       "3             2.720000  TACAACGTGAAGGTGAACTGCTGACTAAAGTTTGGTCCCTTTCGCT...  \n",
       "4             2.280000  TACAACGTGAAGGTGAACTGCTGACTAAAGTTTGGTCCCTTTCGCT...  \n",
       "...                ...                                                ...  \n",
       "26144         3.536667  TAAATTGCTGACTTTGATTAAGGAATTATAGACTGACTACATTGGA...  \n",
       "26145         3.075128  TAAATTGCTGACTTTGATTAAGGAATTATAGACTGACTACATTGGA...  \n",
       "26146         2.870000  TAAATTGCTGACTTTGATTAAGGAATTATAGACTGACTACATTGGA...  \n",
       "26147         2.870000  TAAATTGCTGACTTTGATTAAGGAATTATAGACTGACTACATTGGA...  \n",
       "26148         2.670000  TAAATTGCTGACTTTGATTAAGGAATTATAGACTGACTACATTGGA...  \n",
       "\n",
       "[26149 rows x 29 columns]"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#here's the output: 26,000 pegRNAs\n",
    "ranked_filtered"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "02fedfad",
   "metadata": {},
   "source": [
    "We can also view the breakdown of the clinical classifications, provided by ClinVar:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "2d96bbfc",
   "metadata": {},
   "outputs": [],
   "source": [
    "#seeing what fraction are modeled according the different clinical classification and variant types\n",
    "modeled = np.unique(ranked_filtered['mutant index'])\n",
    "\n",
    "var_types = list(np.unique(msh6_combined['Variant_Type']))\n",
    "var_dict = dict(zip(var_types, [0,1,2]))\n",
    "var_count = np.zeros(3)\n",
    "\n",
    "clin_sigs = list(np.unique(msh6_combined['CLNSIG']))\n",
    "clin_dict = dict(zip(clin_sigs, [0,1,2,3,4,5,6,7,8]))\n",
    "clin_count = np.zeros(len(clin_sigs))\n",
    "\n",
    "\n",
    "for i, val in msh6_combined.iterrows():\n",
    "    var = val['Variant_Type']\n",
    "    clin_sig = val['CLNSIG']\n",
    "    if i in modeled:\n",
    "        idx = var_dict[var]\n",
    "        var_count[idx]+=1\n",
    "        \n",
    "        idx2 = clin_dict[clin_sig]\n",
    "        clin_count[idx2]+=1\n",
    "        \n",
    "        \n",
    "v1, var_totals = np.unique(msh6_combined['Variant_Type'], return_counts=True)\n",
    "c1, clin_totals = np.unique(msh6_combined['CLNSIG'], return_counts=True)\n",
    "\n",
    "var_perc = var_count/var_totals\n",
    "clin_perc = clin_count/clin_totals\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "7b3320e1",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/var/folders/5g/xxjcy2g531n02hnyb6d8qdsr0000gn/T/ipykernel_24740/4249409370.py:16: UserWarning: FixedFormatter should only be used together with FixedLocator\n",
      "  ax[0].set_xticklabels(new_clin_sigs, rotation=90, fontsize=10)\n",
      "/var/folders/5g/xxjcy2g531n02hnyb6d8qdsr0000gn/T/ipykernel_24740/4249409370.py:17: UserWarning: FixedFormatter should only be used together with FixedLocator\n",
      "  ax[1].set_xticklabels(new_clin_sigs, rotation=90, fontsize=10)\n"
     ]
    },
    {
     "data": {
      "image/png": "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Yv34euD5XdfWm85AERHRm+0lFuIj80IiIhbRVHuQfwH8I3Ay8C3gPyU9HXgQeCOQdZAjIiIiYihMtYH8SWBVANtflSTg9cDywEHAZ2cmXkREdNS19731x9rArcAJwGds/7VgtIiIoTLVdZBvpSrEneOvAF+ZqVAREdHTe6g2BTkD+AmwDvBhqg6MdxTMFRExVKY0BlnSHyVt1ufappL+OL2xIiKih/cCX7O9ne29bb+RqmG8u6R+a9RHRMRCmuokvbXpv0HI44A1pyVNRERM5OnAj8adO4Gqlq/beJqIiCHVd4iFpJWYv3IFwFMkzR73tOWAXYH/nf5oERExznLA+LHGf6s/L99wloiIoTXRGOQPAftSraVp4Id9nifgI9OcKyIieuveKAT6bxZi219vNlpExHCYqIH8XWAuVQP4JOBfgWvHPech4FrbN81MvIiIGKfXRiGw4GYhBtJAjohYBH0byLZ/D/weQNKLgIts399UsIiIGMv2VOeNRETEYpjqOsi/BZD0uH5PyBqcERERETEMptpA/jPV23UTybamERERETHwptpAfjsLNpBXAV4GbAz823SGioiIiIgoZao76R3e59JXJB0MbDKV7yPpO8COwO22N63P7Qe8C7ijftonbP+0vrYP1SL4jwDvt31afX5L4HCqZY1+CnzA9mQ93BERERERk5qOCR8nALtN8bmHA9v3OP8V25vXH53G8cZUayxvUn/NwZI6wzi+DuwBrF9/9PqeERERERELbToayP8APDiVJ9o+B7hrit93J+B7th+0fT1wHbCVpNWBlWz/uu41PhJ4zcLHjoiIiIhY0JSGWEj6Qo/TywDPAF4CfHUxc/yLpN2o1l3+iO27gacC53c95+b63N/rx+PP9yRpD6reZmbPHr8RYETE4JL0LOCTwBxgTWAb2xdJ2h841/YpRQNGRAyoqfYg79Lj4+X1178f2HsxMnwdWA/YHJgHfKk+rx7P9QTne7J9iO05tufMmjVrMWJGRLSHpB2AC4GnUL2TtnTX5QeBvUrkiogYBlOdpLfOTAWwfVvnsaRvAT+uD28G1up66prALfX5NXucj4gYJZ8HDrf9LklLAft2XbsEeE+RVBERQ6D4rkz1mOKO1wJX1I9PAnaVtKykdagm411gex5wv6StJYlqguCJjYaOiChvI+D79ePx76LdR7UUZ0RELIKp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\n",
      "text/plain": [
       "<Figure size 720x504 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#making summary bar plots...\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "#reordering the labels so that they're in order of clinical classification\n",
    "new_clin_sigs = [clin_sigs[1], clin_sigs[2], clin_sigs[4],\n",
    "                clin_sigs[5], clin_sigs[7], clin_sigs[6], clin_sigs[3], clin_sigs[8]]\n",
    "new_clin_perc = np.asarray([clin_perc[1], clin_perc[2], clin_perc[4],\n",
    "                clin_perc[5], clin_perc[7], clin_perc[6], clin_perc[3], clin_perc[8]])\n",
    "\n",
    "new_clin_totals= [clin_totals[1], clin_totals[2], clin_totals[4],\n",
    "                clin_totals[5], clin_totals[7], clin_totals[6], clin_totals[3], clin_totals[8]]\n",
    "\n",
    "\n",
    "fig, ax = plt.subplots(1,2, figsize=(10,7), sharey=False)\n",
    "ax[0].bar(new_clin_sigs, new_clin_totals, color=[\"darkgreen\", \"lightgreen\", \"gold\", \"darkorange\", \"red\", \"darkred\", \"dimgrey\", \"black\"])\n",
    "ax[0].set_xticklabels(new_clin_sigs, rotation=90, fontsize=10)\n",
    "ax[1].set_xticklabels(new_clin_sigs, rotation=90, fontsize=10)\n",
    "ax[1].bar(new_clin_sigs, 100*new_clin_perc)\n",
    "ax[1].set_ylabel('Percentage PE Accessible', fontsize=15)\n",
    "ax[0].set_ylabel('# mutations', fontsize=15)\n",
    "ax[1].set_ylim(0,100)\n",
    "plt.tight_layout()\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7ce37544",
   "metadata": {},
   "source": [
    "We can also look at the breakdown of variant types represented:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "3f9f2b19",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/var/folders/5g/xxjcy2g531n02hnyb6d8qdsr0000gn/T/ipykernel_24740/513117846.py:5: UserWarning: FixedFormatter should only be used together with FixedLocator\n",
      "  ax[0].set_xticklabels(var_types, rotation=90, fontsize=10)\n",
      "/var/folders/5g/xxjcy2g531n02hnyb6d8qdsr0000gn/T/ipykernel_24740/513117846.py:6: UserWarning: FixedFormatter should only be used together with FixedLocator\n",
      "  ax[1].set_xticklabels(var_types, rotation=90, fontsize=10)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "(0.0, 100.0)"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x360 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#making summary bar plots...\n",
    "import matplotlib.pyplot as plt\n",
    "fig, ax = plt.subplots(1,2, figsize=(10,5), sharey=False)\n",
    "ax[0].bar(var_types, var_totals)\n",
    "ax[0].set_xticklabels(var_types, rotation=90, fontsize=10)\n",
    "ax[1].set_xticklabels(var_types, rotation=90, fontsize=10)\n",
    "ax[1].bar(var_types, 100*var_perc)\n",
    "ax[1].set_ylabel('Percentage PE Accessible', fontsize=15)\n",
    "ax[0].set_ylabel('# mutations', fontsize=15)\n",
    "ax[1].set_ylim(0,100)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.12"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {
    "height": "341.992px",
    "width": "434.99px"
   },
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": false
  },
  "varInspector": {
   "cols": {
    "lenName": 16,
    "lenType": 16,
    "lenVar": 40
   },
   "kernels_config": {
    "python": {
     "delete_cmd_postfix": "",
     "delete_cmd_prefix": "del ",
     "library": "var_list.py",
     "varRefreshCmd": "print(var_dic_list())"
    },
    "r": {
     "delete_cmd_postfix": ") ",
     "delete_cmd_prefix": "rm(",
     "library": "var_list.r",
     "varRefreshCmd": "cat(var_dic_list()) "
    }
   },
   "types_to_exclude": [
    "module",
    "function",
    "builtin_function_or_method",
    "instance",
    "_Feature"
   ],
   "window_display": false
  },
  "vscode": {
   "interpreter": {
    "hash": "cc3333ac56ab1f75e6e44fb705a1bf2c1c62733b59f501f77a8d7c4921d5dc74"
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
